0

好吧,我正在尝试在球拍中获得一些东西,我目前正在研究流。我尝试创建一个将编辑流的函数,例如添加一对 (int, element) 来代替每个流的元素。

例如 initial_stream : <1,2,3, ...> 编辑流: <(int . 1) (int . 2) (int . 3) ..... >

我写了这个,但它似乎进入了一个无限循环(int => 13)

(define (stream-add-zero s)
  (cons (cons 13 (car (s))) (stream-add-zero (cdr (s)))))

提前致谢。

4

1 回答 1

1

如果“流”是指 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))

这是假设intin youredited_stream是一个符号。

于 2013-11-10T22:08:26.650 回答