Skip to content

Instantly share code, notes, and snippets.

@valvallow
Created February 11, 2010 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valvallow/301547 to your computer and use it in GitHub Desktop.
Save valvallow/301547 to your computer and use it in GitHub Desktop.
fold, fold-right,
; fold, fold-right
(fold (lambda (x y z)
(display (format "x = ~a, y = ~a, z = ~a\n" x y z))
(+ x y z)) 0 '(1 1 1) '(1 1 1))
;; x = 1, y = 1, z = 0
;; x = 1, y = 1, z = 2
;; x = 1, y = 1, z = 4
;; 6
(fold (lambda (m n o r)
(display (format "m = ~a, n = ~a, o = ~a, r = ~a\n" m n o r))
(+ m n o r)) 0 '(1 1 1) '(1 1 1) '(1 1 1))
;; m = 1, n = 1, o = 1, r = 0
;; m = 1, n = 1, o = 1, r = 3
;; m = 1, n = 1, o = 1, r = 6
;; 9
(fold-right (lambda (x y z)
(display (format "x = ~a, y = ~a, z = ~a\n" x y z))
(cons x (cons y z))) '() '(1 2 3) '(a b c))
;; x = 3, y = c, z = ()
;; x = 2, y = b, z = (3 c)
;; x = 1, y = a, z = (2 b 3 c)
;; (1 a 2 b 3 c)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment