Write Yourself a Scheme in 48 Hoursを3章まで読んだ。RWHのParsecの章を読んでたのと、やさしい Lisp の作り方をMooseでトレースしたことがあるので割とすんなりと進んだ。

Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。
apply func args = maybe (Bool False) ($ args) $ lookup func primitives
ってのがあって、僕はちょっと前まで$を()の構文糖衣だと勘違いしてたのでなんか違和感が。
($ [1,2,3]) (map (1+)) :: map (1+) [1,2,3]
は見慣れれば楽なのかもしれないが。
Prelude> (($[1,2,3]).map) (2-)
[1,0,-1]
とかやるとmapがメソッドっぽく見える