たとえば、3 と 4 の 2 乗を加算するには、次のようにします。
(foldl
(lambda (val res) (+ (sqr val) res))
0
'(3 4))
初期値は 0 です。リスト '(3 4) の各値に対して、値が にバインドされval
、前の結果が にバインドされた状態で関数が呼び出されres
ます。
これは、
(define (fun val res)
(+ (sqr val) res))
(foldl fun 0 '(3 4))
ただし、最初の例では関数は無名です。