23022009 lisp
いまいちシンボルについてきちんと理解してないのでたまに混乱するのだけど、キーワードシンボルが束縛されているか調べてたのでエントリにしてみた。
自己評価型ってのはboundpは常にTを返すんですねぇ(Tとかnilも)。ここらへんは実際に実装してみれば理解が深まるのかなぁ。
23022009 lisp
いまいちシンボルについてきちんと理解してないのでたまに混乱するのだけど、キーワードシンボルが束縛されているか調べてたのでエントリにしてみた。
自己評価型ってのはboundpは常にTを返すんですねぇ(Tとかnilも)。ここらへんは実際に実装してみれば理解が深まるのかなぁ。
21022009 lisp
わかりやすかった。
15022009 lisp
macbookでaserveがうまく動かせないのでhunchentootを使ってる。日本語の通しかたをみつけたので早速。あとcl-whoもちょっといじってみた。
(require :hunchentoot)
(require :cl-who)
(setq *server* (hunchentoot:start-server :port 4242))
(setf (hunchentoot:log-file) "./server.log")
(setq hunchentoot:*hunchentoot-default-external-format*
(flex:make-external-format :utf-8 :eol-style :lf))
(setq hunchentoot:*default-content-type* "text/html; charset=utf-8")
(setq hunchentoot:*dispatch-table*
(list (hunchentoot:create-regex-dispatcher "^/$" 'hello-world)))
(defun hello-world ()
(cl-who:with-html-output-to-string
(str nil :prologue t)
(:html (:head (:title "hello world"))
(:body (:h1 "はろはろ リスプってますよ") (:br) (:img :src
"http://ec2.images-amazon.com/images/I/51gfHrLAtTL._SS500_.jpg")))))
このながれで、hunchentootでblosxomクローンでもつくってみるかな。
setqについて書いた。
SLIMEのM-. M-, C-cC-mあたりがおもしろい
(incf x)をC-cC-mすると
(LET* ((#:G766 1) (#:NEW765 (+ X #:G766))) (SETQ X #:NEW765))
とマクロ展開される
14022009 lisp
SBCLのasdf:oosとrequireの違いがわからないという、解決も何にもしてないただ疑問だけのエントリーを書いた。
あと、Slimy Hackathon面白そうだ。参加したいところだが、、、、
emacs+slime+clojure+processingでaction-codingのようなことがやれればと思っているんだけど。clojure+processingで再帰的な図形が描ければ楽しいと思うんだよなぁ。
11022009 lisp
09022009 lisp
前回aserveがうまくいかなかったので、もうひとつのHUNCHENTOOTを試してみた。
(asdf-install:install 'hunchentoot)
だとこけるので、依存しているライブラリをひとつづつインストールした後改めてhunchentootをインストールしたらあっさり完了
言語の組み込みのサーバーが動くとなんとなくワクワクする。
ここのところOn Lispとか実践Common Lispを読んで、マクロって面白いなぁと。
そういえばModule::Compile::TTがあったのを思い出した。
That said, string level preprocessing of source code sucks. However, since Perl doesn't have a convenient AST to write Lisp-style macros and deeper templates (that are aware of Perl's own semantics), this module does fill a niche.
Lispだとマクロをガリガリ使えるのは抽象構文木のおかげ?そこらへんのモヤモヤが晴れないのは精進が足りないからか。
08022009 lisp
この前の続き。
(asdf:oos 'asdf:load-op 'aserve)
(asdf:oos 'asdf:load-op 's-xml)
(setq result (net.aserve.client:do-http-request
"http://ws.audioscrobbler.com/2.0/user/kzfm/toptracks.xml"
:format :binary))
(setq data (s-xml:parse-xml-string (sb-ext:octets-to-string result
:external-format :utf8)))
s-xmlを使った。
((:|toptracks| :|user| "kzfm" :|type| "overall")
((:|track| :|rank| "1") (:|name| "Imaginary Folklore") (:|playcount| "169")
:|mbid|
(:|url| "http://www.last.fm/music/Clammbon+By+Nujabes/_/Imaginary+Folklore")
((:|streamable| :|fulltrack| "0") "0")
(:|artist| (:|name| "Clammbon By Nujabes") :|mbid|
(:|url| "http://www.last.fm/music/Clammbon+By+Nujabes")))
((:|track| :|rank| "2") (:|name| "アンパンマンのマーチ") (:|playcount| "78") :|mbid|
(:|url|
結論:Nujabesのクラムボンrmxはよい
第4回Smiley Hackathon(仮)に参加してみることにしました!で、
なぬ、CLでMoose?と思ったので、lingrで色々教えてもらったら、Mooseのソース読まなきゃいけない気分になったのと、Smiley Hackathonに行きたくなったんだけど、予定が埋まってたので無理だった。
これも読みたい。