; 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)