Blame


1 665c255d 2023-08-04 jrmu (defun fold-right (op init seq)
2 665c255d 2023-08-04 jrmu (if (null seq)
3 665c255d 2023-08-04 jrmu init
4 665c255d 2023-08-04 jrmu (funcall op
5 665c255d 2023-08-04 jrmu (car seq)
6 665c255d 2023-08-04 jrmu (fold-right op init (cdr seq)))))
7 665c255d 2023-08-04 jrmu (defun fold-left (op init seq)
8 665c255d 2023-08-04 jrmu (labels (
9 665c255d 2023-08-04 jrmu (iter (result rest)
10 665c255d 2023-08-04 jrmu (if (null rest)
11 665c255d 2023-08-04 jrmu result
12 665c255d 2023-08-04 jrmu (iter (funcall op result (car rest))
13 665c255d 2023-08-04 jrmu (cdr rest)))))
14 665c255d 2023-08-04 jrmu (iter init seq)))
15 665c255d 2023-08-04 jrmu (fold-right #'* 1 '(1 2 3 4 5))
16 665c255d 2023-08-04 jrmu (fold-left #'* 1 '(1 2 3 4 5))