SICP流练习:创建具有交替值的流

时间:2015-10-21 02:19:59

标签: math stream sicp

我正在阅读SICP第3章并考虑到这一点(认为它是创建整数流的过程整数的变体):如何创建两个交替值的流?例如,你创建了这个:

1 0 1 0 1 0 1 0 ...

您可以将步骤更改为2(或更多)并使其看起来像

1 1 0 0 1 1 0 0 1 1 ...

1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 ...

1 个答案:

答案 0 :(得分:-1)

(define (make-alternating-values n)
  (define (iter i)
    (cons-stream 
      (if (> n 0)
        1
        0)
      (if (= i (- 1 n))
        (iter n)
        (iter (- i 1)))))
  (iter n))

(make-alternating-values 1)
; 1 0 1 0 1 0 1 0 ...
(make-alternating-values 2)
; 1 1 0 0 1 1 0 0 1 1 ...
(make-alternating-values 3)
; 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 ...
相关问题