SICP 2nd Edition セクション2.2.3では、作成者は次のコードを使用しています。
(define (even-fibs n)
(accumulate cons
nil
(filter even?
(map fib
(enumerate-interval 0 n)))))
私の質問は、なぜ彼らはこの場合accumulateを使用したのですか? accumulateを使用せずに、filterから同じ答えを得ることができませんでした?
本のそのセクションでは、filter
、map
、およびenumerate-interval
は、概念的にリストとは異なるシーケンスを返すと想定されています。たとえば、ストリームを使用してシーケンスを実装できますが、リストを使用してシーケンスを実装することもできます。
したがって、この場合、accumulate
とcons
は、シーケンスをリストに変換します。