2015-10-21 33 views
0

我正在閱讀SICP第3章並且想到了這一點(認爲它是創建整數流的過程整數的變體):如何創建兩個交替值的流?例如,你創建這個:SICP流練習:創建一個具有交替值的流

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
(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 ...