diff --git a/memo.scm b/memo.scm index bea55409..7361c7e1 100644 --- a/memo.scm +++ b/memo.scm @@ -3,27 +3,27 @@ (srfi 69) (scheme write)) - (define (memoize function) - (let ((table (make-hash-table))) ;(make-equal?-map))) - (lambda args - (apply values - ;(map-get table - (hash-table-ref table - args - ;; If the entry isn't there, call the function. - (lambda () - (call-with-values - (lambda () (apply function args)) - (lambda results - ;(map-put! table args results) - (hash-table-set! table args results) - results)))))))) - -(define (fnc x y) (+ x y)) -(define mfnc (memoize fnc)) - -(write (mfnc 1 1)) (newline) -(write (mfnc 1 1)) (newline) +; (define (memoize function) +; (let ((table (make-hash-table))) ;(make-equal?-map))) +; (lambda args +; (apply values +; ;(map-get table +; (hash-table-ref table +; args +; ;; If the entry isn't there, call the function. +; (lambda () +; (call-with-values +; (lambda () (apply function args)) +; (lambda results +; ;(map-put! table args results) +; (hash-table-set! table args results) +; results)))))))) +; +;(define (fnc x y) (+ x y)) +;(define mfnc (memoize fnc)) +; +;(write (mfnc 1 1)) (newline) +;(write (mfnc 1 1)) (newline) ; Original versions: (define (ack m n) diff --git a/scheme/cyclone/cps-opt-memoize-pure-fncs.scm b/scheme/cyclone/cps-opt-memoize-pure-fncs.scm index 9e1ec3c6..e7f3a314 100644 --- a/scheme/cyclone/cps-opt-memoize-pure-fncs.scm +++ b/scheme/cyclone/cps-opt-memoize-pure-fncs.scm @@ -193,7 +193,7 @@ (set-global! ,var ,rsym) ,acc))) ) - `(memoize + `(Cyc-memoize ,(ast:make-lambda (list rsym) body) ,new-var))) exp