第13回オープンソーステクノロジー勉強会に参加してきた.
お題はLisp.LispといえばEmacs Lispしか知らず,「うはw括弧ばっかりww」的な感想しかなかったんですが,最近はSchemeやGauche(ゴーシュと読む)の登場で気にはなってました.
と言うわけでログ.
セルの海 マクロの空
Lispとは?
- 求人がない?普通の人にはあまり理解されないのだろうか.
- Lispは方言が多い
- Fortranの次に古い.これは意外だ.そう言えば昔からEmacs Lispはあったよな.
- Common Lisp
- 提案されたものはすべて取り入れるので,仕様がかなりふくらんでいる?
- Scheme
- 仕様が50ページのコンパクト.後で調べよう.
- Emacs Lisp
- これはEmacs使いなので知ってるが,書いたことはない.
- 今日はSchemeで&参考文献
(+ (* x x) x 1) (+ (* 3 3) x 1) (+ 9 3 1) 13 #=> x^2 + x + 1
-
- (lambda ....) が関数
- 関数の最後の式が返値
- 全てが式
- 名前がなくても実行できる.無名関数か.
- defineで名前をつける.
- (lambda ....) が関数
Lispのマクロはどんな風に使うのか?
- 例としてFizzBuzz問題
- 高階関数のキモ
- 仕事とデータの走査をわける
- データを作って,関数に各要素を渡して処理する
- 直行性重要.やっぱり.
- DRYの原則をのために,マクロで解決しよう
- クロージャ
- ガラガラヘビみたいなもの?ここがちょっとわからなかった.
- Lispの先進性
- ガベージコレクションや実行時型判定,クロージャなど.
- これも意外でした.そうなのか.
データと関数の区別がない?
- eval(interpreter)を作る
質疑応答
参考文献
The Little Schemer (The MIT Press)
- 作者: Daniel P. Friedman,Matthias Felleisen
- 出版社/メーカー: The MIT Press
- 発売日: 1995/12/21
- メディア: ペーパーバック
- 購入: 10人 クリック: 137回
- この商品を含むブログ (91件) を見る
- 作者: Kahuaプロジェクト,川合史朗
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/03/14
- メディア: 大型本
- 購入: 22人 クリック: 713回
- この商品を含むブログ (244件) を見る