関数型言語の勉強にSICPを読もう - (48) 3章 - 標準部品化力、オブジェクトおよび状態 (192ページ)

問題3.51

streamの問題。
前回から間が開いてしまったのはハマったから。
SICPには stream の実装が完全には書いてなくて、自力で実装を試みたがだめで、Gaucheの util.stream を使ったがよく分からず。。
結局Googleキャッシュ - 読書会II第一三回を発見してやっと救われた。


で答えは

(define x (stream-map show (stream-enumerate-interval 0 10)))
0

(stream-ref x 5)
1
2
3
4
5

(stream-ref x 7)
1
2
3
4
5
6
7


stream-mapの時点で 0 が表示されてしまうのは一つ目の要素が評価されてしまうからかな?
これって正しい挙動なんだろうか。

問題3.52

だめだ頭が回らない。

(stream-ref y 7)
(display-stream y)

したときの結果の時点で納得がいかない。なぜだ。。


※「SICPを読もう」の目次はこちら


計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン 和田 英一
ピアソンエデュケーション (2000/02)
売り上げランキング: 56,404