灯下 登录
计算机科学 / SICP / 3.5.1 Streams Are Delayed Lists

Exercise 3.51 · 习题

Exercise 3.51: In order to take a closer look at
delayed evaluation, we will use the following procedure, which simply returns
its argument after printing it:

(define (show x)
(display-line x)
x)

What does the interpreter print in response to evaluating each expression in
the following sequence?

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

(stream-ref x 5)

(stream-ref x 7)

练习 3.51:为了更仔细地观察延迟求值,我们将使用以下过程——它在打印参数后将其返回:

(define (show x)
(display-line x)
x)

对以下序列中每个表达式求值时,解释器会打印什么?

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

(stream-ref x 5)
(stream-ref x 7)

Racket #lang sicp
(define (show x)
 (display-line x)
 x)
Racket #lang sicp
(define x
 (stream-map
 show
 (stream-enumerate-interval 0 10)))

(stream-ref x 5)
(stream-ref x 7)