SICP 問題 4.74
;; negate, lisp-value, singleton-streamはflatten-streamを変更して直列にしても問題ないのではという問題 ;; 元のflatten-stream (define (flatten-stream stream) (if (stream-null? stream) the-empty-stream (interleave-delayed (stream-car stream) (delay (flatten-stream (stream-cdr stream)))))) ;; a 差し込みを使わないsimple-flattenの実装 (define (simbple-stream-flatmap proc s) (simple-flatten (stream-map proc s))) (define (simple-flatten stream) (stream-map stream-car (stream-filter (lambda (s) (not (null? s))) stream))) ;; b ;; negate, lisp-valueはsinbleton-streamを取るので交互にしても直列にしても結果は変わらない. ;; find-assertionsの場合はfetch-assertionsで対応する表明を集めてきているので同じく変わらない.