Scheme中的Streams

时间:2011-02-15 15:01:23

标签: stream scheme

以下过程如何运作:

(define integers
  (cons-stream 1 
     (stream-map (lambda (x) (+ x 1)) 
        integers))

1 个答案:

答案 0 :(得分:7)

这里要认识到的重要一点是,只计算那些必要的表达式来计算你正在访问的列表的元素。

因此,当您访问第一个元素时,它会评估cons-stream的第一个参数1

当您访问第二个元素时,它会评估stream-map (lambda (x) (+ x 1)) integers的第一个元素。为此,它需要获取integers的第一个元素1,然后将1添加到该元素,然后获得2

当您访问第三个元素时,它会评估stream-map (lambda (x) (+ x 1)) integers的第二个元素。因此,它需要integers2)的第二个元素并添加1来获取3。等等。