SICP-フィルターが既にリストを返しているときにconsでaccumulateを使用する理由


8

SICP第2版のセクション2.2.3、著者は次のコードを持っています:

(define (even-fibs n)
  (accumulate cons
              nil
              (filter even?
                      (map fib
                           (enumerate-interval 0 n)))))

私の質問は、なぜ彼らが使用したのされ蓄積し、この場合には?彼らはaccumulate を使用せずにフィルターから同じ答えを得られなかった でしょうか?

回答:


10

本のそのセクションでは、filtermap、およびenumerate-intervalリストから概念的に区別されるシーケンスを返すと推定されます。たとえば、ストリームを使用してシーケンスを実装できますが、リストを使用してシーケンスを実装することもできます。

したがって、この場合、accumulatewith consはシーケンスをリストに変換することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.