Prawy i lewy fold w języku Scheme mają następujące implementacje, odpowiednio:

(define (foldr f z xs) (if (null? xs) z (f (car xs) (foldr f z (cdr xs)))))oraz(define (foldl f z xs) (if (null? xs) z (foldl f (f (car xs) z) (cdr xs))))

Gdzie null? oznacza funkcję predykatów zwracającą prawdę, gdy argumentem dla niej jest lista pusta.

+ Fold w różnych językach Language Lewy fold Prawy fold Lewy fold 1„Lewy fold 1” oraz „prawy fold 1” to odmiany odpowiednich foldów, które nie pobierają wartości początkowej jako argumentu. Pierwsza wykonywana operacja pobiera jako argumenty dwa pierwsze elementy listy. Z tego powodu nie można tych odmian stosować na listach pustych, zaś typ funkcji łączącej ograniczony jest do (a, a) -> a, co oznacza, że oba argumenty oraz wynik muszą być tego samego typu. Obie odmiany mają swoje zastosowania np. przy konkatenacji napisów.