1
我想編寫一個過程,將一個流(數據流)中的項目重新排列爲由另一個流(訂單流)指定的順序,該順序由指定所需順序的項目編號組成。在Racket中重新排序流
例如,如果數據流以4,13,2,8開始,並且訂單流以3,1,4,2開始,則結果流將以2,4,8,13開始。(結果的第一項是數據的第三個項目,結果的第二項是數據的第一個項目,依此類推。)
到目前爲止我有...
(define (reorder order-stream data-stream)
(cond ((stream-null? order-stream) the-empty-stream)
((stream-null? data-stream) the-empty-stream)
(else (cons-stream (stream-ref order-stream data-stream))))
(define (stream-ref s n)
(if (= n 0)
(stream-car s)
(stream-ref (stream-cdr s) (- n 1))))
但是,輸出並不如預期。
'stream-ref'接受流's'和索引'n',但是你用'data-stream'調用它。另外,'cons-stream'只有一個參數,這是令人驚訝的。 – coredump