Reasoned Schemer (46) 10章 stream、==
streamとは空リストかcdrがstreamであるペアかまたはsuspension
suspensionとは(lambda () body)
という形をしていて評価するとstreamを返すもの
遅延ストリームって言われるやつだな
そんなのが突然の出現
そして意外にさらっと説明・例示が終わる
Reasoned Schemer (45) 10章 ext-s
(ext-s x v s)
はsubstitution s
にassociation `(,x . ,v)
を
追加したものを返す
ただし循環参照ができるようなassociationは追加できず#fを返す
戦国人物伝 今川義元
Reasoned Schemer (44) 10章 walkまで
10章は処理系を書く話っぽいので
ここからひさしぶりに写経モードで
そういえば、ここで書く処理系はminiKanrenと呼ばれるものらしい
ファイル名つけようと思った時にふと名前が気になった
変数を定義
続きを読むReasoned Schemer (43) 9章 enumerate+o
(defrel (enumerate+o r n)
(fresh (i j k)
(bumpo n i) (bumpo n j)
(+o i j k)
(gen&test+o i j k)
(== `(,i ,j ,k) r)))
bumpo
、gen&test+o
はenumerate+o
のヘルパー関数だったみたい
(run* s (enumerate+o s '(1 1)))
とやると0から3までの数をふたつと
それらを足した結果がすべて列挙される
列挙される順番はデタラメにしか見えないけどどうなってるんだろう