好吧,我正在努力争取一些东西,我正在研究溪流。我尝试创建一个将编辑流的函数,例如添加一对(int,element)代替每个流的元素。
例如,initial_stream:< 1,2,3,...> edited_stream:<(int.1)(int.2)(int.3)...... ..>
我写了这个,但似乎进入了无限循环(使用int => 13)
(define (stream-add-zero s)
(cons (cons 13 (car (s))) (stream-add-zero (cdr (s)))))
提前致谢。
答案 0 :(得分:1)
如果通过" stream"你的意思是Racket的懒惰流数据结构,可以使用stream-map的应用程序来完成。
(define initial-stream (in-naturals))
(define edited-stream (stream-map (λ (i) (cons 'int i)) initial-stream))
;; sanity check
(require rackunit)
(check-equal? (stream-ref edited-stream 3) '(int . 3))
这假设int
中的edited_stream
是一个符号。