第94回 素人くさいSICP読書会(at コントロールプラス株式会社)
- 会場提供&紅茶ありがとうございました
- 社長様じきじきに紅茶を入れていただきました
- というか最初、社長さんだって気付かなかった。美人でした
- 問題3.82
- defineの動作にわずらわされるのがイヤだったので例によってDrScheme
- 宿題だったので前もってやって行った→ここ
- 動作が式の順番に依存するかどうかでちょっとした議論に
- defineが順番依存なのはまあいいと
- defineの代わりにletrecで書いてる人は順番関係ないんじゃね?ということだったけど、やっぱり順番依存でした
- みんなletrecを勘違いしてたっぽい
- ↓ここから個人の考察
- R5RS見ると、未定義の変数はとりあえず
というシンボルに定義されるみたい - ということで確認
(letrec ((a b) (b 1)) a) ;; => #<undefined>
- エラーじゃなくてふつーに返ってきます
- letrecでは未定義の変数も実体として存在するけど、評価すると
というシンボルになるので、その値を使おうとしておかしくなった、ということらしい
- 平田さんによる問題3.79の検算
- 問題3.81
- 例によって日本語の意味がわからない。平田さんに解読してもらった
- 指令の並んだストリームを渡して、それに従ったストリームを返す手続きを書け、ということでした
- この問題からGaucheに復帰
- めんどくさいんで「generate以外なら『resetが渡す数字』とみなす」という手抜き実装でちゃちゃっと書いたら、いい加減だとブーイング
- あとできれいに清書するよ
- 来週は問題3.81と問題3.82を済ませて3章フィニッシュ!の予定
- 再来週からいよいよ4章の予定