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

Exercise 3.50 · 习题

Exercise 3.50: Complete the following
definition, which generalizes stream-map to allow procedures that take
multiple arguments, analogous to map in 2.2.1,
Footnote 78.

(define (stream-map proc . argstreams)

(if (⟨??⟩ (car argstreams))

the-empty-stream

(⟨??⟩

(apply proc (map ⟨??⟩ argstreams))

(apply stream-map

(cons proc

(map ⟨??⟩

argstreams))))))

练习 3.50:补全以下定义。该定义将 stream-map 推广为可接受多个参数的过程,类似于 2.2.1 节脚注 78 中的 map。

(define (stream-map proc . argstreams)
(if (⟨??⟩ (car argstreams))
the-empty-stream
(⟨??⟩
(apply proc (map ⟨??⟩ argstreams))
(apply stream-map
(cons proc
(map ⟨??⟩
argstreams))))))

Racket #lang sicp
(define (stream-map proc . argstreams)
 (if (⟨??⟩ (car argstreams))
 the-empty-stream
 (⟨??⟩
 (apply proc (map ⟨??⟩ argstreams))
 (apply stream-map
 (cons proc
 (map ⟨??⟩
 argstreams))))))