Exercise 3.50. Complete the following definition, which generalizes stream-map to allow procedures that take multiple arguments, analogous to map in section 2.2.3, footnote 12.
(define (stream-map proc . argstreams)
(if (<??> (car argstreams))
the-empty-stream
(<??>
(apply proc (map <??> argstreams))
(apply stream-map
(cons proc (map <??> argstreams))))))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (define (stream-map proc . argstreams) | |
| (if (stream-null? (car argstreams)) | |
| the-empty-stream | |
| (cons-stream | |
| (apply proc (map stream-car argstreams)) | |
| (apply stream-map | |
| (cons proc (map stream-cdr argstreams)))))) | |