1

ストリームの最初の 6 つの要素を取得する場合、(1 1) (1 2) (1 3) (2 2) (2 3) (3 3) のようなペアの出力を生成しようとしています。(最初の 6 列には 3 つの列があり、1 から始まり、次に 2、次に 3 のペアを出力する必要があります。) 私が持っているコードは次のとおりです。

(define (pairs s t)
  (cons-stream (cons (stream-car s) (stream-car t))
               (cons-stream
                (stream-map (lambda (x) (cons (stream-car s) x))
                            (stream-cdr t))
                (pairs (stream-cdr t) (stream-cdr s)))))

そして、私が走れば

(take 6 (pairs integers integers))

take と integer は次のように定義されます。

(define (take n s)  
  (if (= n 0)
      '()
      (cons (stream-car s) (take (- n 1) (stream-cdr s)))))

(define integers (cons-stream 1 (add-streams ones integers))) 

私が得る結果は次のとおりです。

((1 . 1)
 ((1 . 2) . #<promise>)
 (2 . 2)
 ((2 . 3) . #<promise>)
 (3 . 3)
 ((3 . 4) . #<promise>))
4

1 に答える 1