diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2017-10-01 19:59:55 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2017-10-01 22:16:22 +0300 |
commit | 64df08f0cfac8f7a329002afa3461fd62a4b229c (patch) | |
tree | 019909423138ceb49cdd86f1af48d366503db68f /guix/memoization.scm | |
parent | b83ad3ace56c65a367e8f58c7b78323cf251b94b (diff) | |
parent | 0ef1c223071869488c35b72b7407234c11425589 (diff) | |
download | guix-patches-64df08f0cfac8f7a329002afa3461fd62a4b229c.tar guix-patches-64df08f0cfac8f7a329002afa3461fd62a4b229c.tar.gz |
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'guix/memoization.scm')
-rw-r--r-- | guix/memoization.scm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/guix/memoization.scm b/guix/memoization.scm index 5cae283610..bf3b73d806 100644 --- a/guix/memoization.scm +++ b/guix/memoization.scm @@ -76,10 +76,11 @@ the result is returned via (apply values results)." exactly one value." ((_ cached () body ...) ;; The zero-argument case is equivalent to a promise. - (let ((result #f) (cached? #f)) + (let ((result #f) (cached? #f) + (compute (lambda () body ...))) (lambda () (unless cached? - (set! result (begin body ...)) + (set! result (compute)) (set! cached? #t)) result))) |