summaryrefslogtreecommitdiff
path: root/guix/memoization.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2017-10-01 19:59:55 +0300
committerEfraim Flashner <efraim@flashner.co.il>2017-10-01 22:16:22 +0300
commit64df08f0cfac8f7a329002afa3461fd62a4b229c (patch)
tree019909423138ceb49cdd86f1af48d366503db68f /guix/memoization.scm
parentb83ad3ace56c65a367e8f58c7b78323cf251b94b (diff)
parent0ef1c223071869488c35b72b7407234c11425589 (diff)
downloadguix-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.scm5
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)))