2016/01/10
SICP 問題 4.32
遅延度の高い遅延リストではcar部も遅延されているので未定義の変数を使って構成するできる.
;;; M-Eval input:
(define my-stream (cons x y))
;;; M-Eval value:
ok
;;; M-Eval input:
my-stream
;;; M-Eval value:
(compound-procedure (m) ((m x y)) <procedure-env>)
car部もlazy-evaluateされるのでlazyなリスト(ストリーム)だけでなくlazyな木構造も作ることができる.