Scheme 手習い 8 章

エントリ投入の報せが入った。

とりあえず git pull して

$ git pull
remote: Counting objects: 138, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 136 (delta 89), reused 126 (delta 79)
Receiving objects: 100% (136/136), 13.60 KiB, done.
Resolving deltas: 100% (89/89), completed with 2 local objects.
From git://github.com/hanachin/TheLittleSchemer
   dfb5e59..9c5b266  master     -> origin/master
Updating dfb5e59..9c5b266
Fast-forward
 8.scm    |   51 +++++++++++
 func.scm |  287 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 293 insertions(+), 45 deletions(-)
 create mode 100644 8.scm
$

読んでみます。

手続きオブジェクト

この用語ってどこで出てくるんだったか (Scheme 手習いでは出てこないはず)。
ちなみに

(eq-c? k)

は何か、あるいは何を戻すか、というと (k は salad とのこと)、引数を一つ取ってそれが salad と eq? かを戻す手続きオブジェクト、ということになるのかな。130p でそう書いてありますね。
あと 135p の yyy という手続きの

(define yyy
  (lambda (a l)
    ((insert-g (lambda (new old l) l)) #f a l)))

の #f はどんな役割をしているか、というと「使わんけぇね」ということを #f で明示している、という言い方で良いのかなぁ。
それにしてもビバ、抽象化の力、ですな。

collector とか continuation というナニが出てくるな。multiremver&co 手続きですが、なんとか読めますね。良かった。これ系って慣れてないと目視で脳内実行は微妙。
手続きオブジェクトがその時点の変数束縛な環境を引き継ぎながら手続きオブジェクトの中の変数束縛に組込まれつつ、というのがわははは的。
で、lat が null になった時に逆順に皮が剥げていくのも気持ち良いですね。

てか

evens-only*&co はなんとなくイメージできてますが、明日で勘弁して下さひ。