diff options
Diffstat (limited to 'coding-exercises/2/38.rkt')
| -rw-r--r-- | coding-exercises/2/38.rkt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/coding-exercises/2/38.rkt b/coding-exercises/2/38.rkt new file mode 100644 index 0000000..456e283 --- /dev/null +++ b/coding-exercises/2/38.rkt @@ -0,0 +1,24 @@ +#lang racket +(require "../../shared/lists.rkt") + +(define (fold-right op initial sequence) + (accumulate op initial sequence)) + +(define (fold-left op initial sequence) + (define (iter result rest) + (if (null? rest) + result + (iter (op result (car rest)) + (cdr rest)))) + (iter initial sequence)) + +((lambda () + (newline) + (display (fold-right / 1 (list 1 2 3))) + (newline) + (display (fold-left / 1 (list 1 2 3))) + (newline) + (display (fold-right list '() (list 1 2 3))) + (newline) + (display (fold-left list '() (list 1 2 3))))) + |
