GREE勉強会「セルの海 マクロの空」
勉強会本編
株式会社インターネットイニシアティブ 山本和彦さんの発表
GREEのページの下の方に発表資料のPDFがあるので、かいつまんでまとめ&感想。
Lispことはじめ
セルはどうして2つのポインタなのか?
(Scheme用語ではペア)
Lispのマクロはどんな風に使うのか?
Lispのデザインパターン(p38)はとても重要。
特に以下の二つについては非関数型のLLでも生かせると思う。
- 副作用のある関数とない関数を分ける
- 「仕事」と「データの走査」を分ける方の高階関数
例題:FizzBuzzの進化。
ループ→高階関数→直交→マクロ
Paul Grahamの普通のやつらの上を行け(2001年)に、
Lispで1960年台〜1970年代に導入された技術の中で、
GCと実行時型判定は既にポピュラーになり、
レキシカルクロージャはようやく「レーダーの端に捉えられはじめた」が、
マクロはまだ未知の世界だという話がある。
山本さんによると、この「レーダーの端に捉えられはじめた」というのは
AjaxによるJavaScriptの再評価の時期にクロージャが活用されるようになった事なのではないかとのこと。
全体の感想
懇親会
主にid:t_ishidaと話をした。
java-jaの人だとばっかり思ってたので違っててびっくり。