编辑流 - 球拍

时间:2013-11-10 20:31:21

标签: stream racket

好吧,我正在努力争取一些东西,我正在研究溪流。我尝试创建一个将编辑流的函数,例如添加一对(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)))))

提前致谢。

1 个答案:

答案 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是一个符号。