scheme实现代码
(define (stream-delay expr)
(lambda ()
expr))
(define (stream-force delayed)
(delayed))
(define (stream-car stream) (car stream))
(define (stream-cdr stream) (stream-force (cdr stream)))
(define (cons-stream a b) (cons a (stream-delay b)))
实现ones流: (1 1 1 1 1 1 1 …)
scheme
(define ones (cons-stream 1 ones))
clojure
(def ones
(lazy-seq
(cons 1 ones))
疑问
总想把scheme的stream与clojure的lazy-seq联系起来,两个都用到递归,都是惰性,但只有lazy-seq带缓存,他们的构造看起来不一样
虽然这样,我想知道的是他们之间有没有互通的方面,可不可以用stream来理解lazy-seq