web-dev-qa-db-ja.com

SICP-フィルターがすでにリストを返すのに、consと一緒にaccumulateを使用する理由

SICP 2nd Edition セクション2.2.3では、作成者は次のコードを使用しています。

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

私の質問は、なぜ彼らはこの場合accumulateを使用したのですか? accumulateを使用せずに、filterから同じ答えを得ることができませんでした?

8
RAbraham

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

したがって、この場合、accumulateconsは、シーケンスをリストに変換します。

10