• bircok fonksyonel dilde var olan* bir komuttur. iki arguman alan bir fonksyon, bir arguman ve bir arguman listesi alir, fonksyonu listeye teker teker uygular. ilk seferinde listenin son elemanini ve verilen argumani fonksyona arguman olarak yollar. sonra listede eleman oldukca her seferinde cikan sonucu fonksyonun ikinci argumani olarak, listedeki siradaki elemanla birlikte tekrar fonksyona gonderir.
    foldr'dan farki listenin siradaki elemanini sola (1. arguman olarak) koymasi, ve listenin son elemanindan ilk elemanina dogru gitmesidir.
  • tail recursive olmasi sebebiyle foldrdan daha verimlidir. imkan oldugu yerde mutlaka kullanilmasi, mutlu olunmasi lazim gelir.

    (foldl + 0 '(1 2 3))
    (foldl + (+ 0 1) '(2 3))
    (foldl + 1 '(2 3))
    (foldl + (+ 1 2) '(3))
    (foldl + 3 '(3))
    (foldl + (+ 3 3) '())
    (foldl + 6 '())
    6
  • bir de bu fonksiyonu kullanarak liste reverse etmek vardir ki tadindan yenmez.

    > (foldl cons null (list 1 2 3))
    (list 3 2 1)
hesabın var mı? giriş yap