快楽主義でいくとすると実践Common Lisp読むのが一番自然かなと思って再読中。
他にも未読の本が多数あるのだけどこの本を読み返すのが一番かなと思って読んでます。
改めて読み返してみるとさすがCommon Lispの本だけあって序盤でマクロです。
一回目読んだときは意味も分からずただ読み進めただけだったからさ。
しかしマクロ全然わからない。
自分でマクロ作るなんて全然うまくいかないのだけど、とりあえず標準で用意されているマクロを自分なりに実装してみることにしました。
「cond」なんかどうやってやってるか全然わからない。
大体「and」の時点でお手上げ状態。
とりあえずできたような気がするのが「when」「unless」だからね。
難しいね。
9章まで読み返したのだけどやっぱり肝はマクロだな。
マクロは魅力的過ぎる。
四苦八苦してやっと理解できたこととしては、マクロは評価されるタイミングが違うから、引数のS式が評価されないって点に気づくまでえらい時間がかかってしまいました。
だからマクロの呼び出しは「'」しないのだと。
何回読んでも「definition for mac, read only」意味不明だったけどマクロ呼び出しの時は引数のS式が評価されないってわかってからは、この小話の意味がちょっとだけ分かったような気がする。
しかし、「'」や「`」や「,」や「,@」ってスゴイこと考え付いたよね。
でもこれらを自由に使いこなせるようになったらマクロ無い言語は不自由に感じるんだろうな。
コンピュータサイエンスの話題、Common Lisp、すこしHaskellにも触れます 求職中 スキルとしてはVisual StudioでC#が得意 Webアプリケーション、データベースの一般的な操作に精通しています 要件定義から設計、実装まで問題なくこなせます 一般的なプログラミング言語なら問題なく扱えます
2011年7月3日
初めての人のためのLISP
竹内 郁雄著
他の言語やったことあるプログラム経験者に対してLISPの紹介、LISPをやったことあるけど意味わかんないやって人のためとか。
対象はそんな感じの人達ではないかなと思う。
たとえば'(quote)とか、condの書式とかなんでこんな風になってるのかとか。
自分はrplacaとかrplacdとか勉強になったかなと。
あと、setfの由来と言うかなんなのかとか。
マクロに関しては相変わらずさっぱりわからない状態です。
バッククオートとカンマ、カンマアット相変わらず不明。
自分でマクロ書けない、まだ自力でマクロ書けない。
副作用のある引数が複数回評価されることについては問題点は理解できているのだけど空で書けるか、防ぐことができるかと問われると自信がないですね。
やっぱりLispでプログラム書かないといけないよな。
マクロとか本で読んでソースを眺めているばかりではいつまでたっても自力で空でかけるようにならないのだろうな。
最後にこの本はCommon Lisp寄りでSchemeっぽくないです。
funcall、applyが登場しますので。
他の言語やったことあるプログラム経験者に対してLISPの紹介、LISPをやったことあるけど意味わかんないやって人のためとか。
対象はそんな感じの人達ではないかなと思う。
たとえば'(quote)とか、condの書式とかなんでこんな風になってるのかとか。
自分はrplacaとかrplacdとか勉強になったかなと。
あと、setfの由来と言うかなんなのかとか。
マクロに関しては相変わらずさっぱりわからない状態です。
バッククオートとカンマ、カンマアット相変わらず不明。
自分でマクロ書けない、まだ自力でマクロ書けない。
副作用のある引数が複数回評価されることについては問題点は理解できているのだけど空で書けるか、防ぐことができるかと問われると自信がないですね。
やっぱりLispでプログラム書かないといけないよな。
マクロとか本で読んでソースを眺めているばかりではいつまでたっても自力で空でかけるようにならないのだろうな。
最後にこの本はCommon Lisp寄りでSchemeっぽくないです。
funcall、applyが登場しますので。
登録:
投稿 (Atom)