Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (use-syntax (ice-9 syncase))
- (define memoized-factorial
- (let ((memo '()))
- (lambda (n)
- (let ((memoized (assq n memo)))
- (if (not (equal? memoized #f))
- (cadr memoized)
- (let ((new-value
- (if (< n 1)
- 1
- (* n (memoized-factorial (- n 1))))))
- (set! memo (cons (list n new-value) memo))
- new-value))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement