[plt-scheme] Doubt in folding
;; my-fold-left : (X X -> X) X (listof X) -> (listof X)
;; applies operation to each element of lox, and
;; combines them in a new list. Works from left to right
;; in lox.
(define (my-fold-left combinator initial lox)
(local [(define (folding local-lox accumulator)
(cond
[(empty? local-lox) accumulator]
[else
(folding (rest local-lox)
(combinator (first local-lox)
accumulator))]))]
(folding lox initial)))
;; plt's built in foldl
(foldl cons empty (list 1 2 3 4)) ; evals to (4 3 2 1)
;; mine
(my-fold-left cons empty (list 1 2 3 4)) ; evals to (4 3 2 1) thanks
for the hint!
--
Eduardo Bellani
www.cnxs.com.br
I object to doing things that computers can do.
- Olin Shivers