diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-01-28 16:33:57 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-01-28 18:55:20 +0100 |
commit | f9704f179a5160013c4a401dce3761714bba8e72 (patch) | |
tree | 37accb8d9a673449525a2d0a48266ddce999d9b0 /guix/combinators.scm | |
parent | e1a65ae57afb791683fbf70dea094f04bb04a07e (diff) | |
download | patches-f9704f179a5160013c4a401dce3761714bba8e72.tar patches-f9704f179a5160013c4a401dce3761714bba8e72.tar.gz |
Add (guix memoization).
* guix/combinators.scm (memoize): Remove.
* guix/memoization.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages.scm, gnu/packages/bootstrap.scm,
guix/build-system/gnu.scm, guix/build-system/python.scm,
guix/derivations.scm, guix/gnu-maintenance.scm,
guix/import/cran.scm, guix/import/elpa.scm,
guix/modules.scm, guix/scripts/build.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/store.scm, guix/utils.scm: Adjust imports accordingly.
Diffstat (limited to 'guix/combinators.scm')
-rw-r--r-- | guix/combinators.scm | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/guix/combinators.scm b/guix/combinators.scm index 9e4689ba9c..11cad62ccf 100644 --- a/guix/combinators.scm +++ b/guix/combinators.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. @@ -20,8 +20,7 @@ (define-module (guix combinators) #:use-module (ice-9 match) #:use-module (ice-9 vlist) - #:export (memoize - fold2 + #:export (fold2 fold-tree fold-tree-leaves compile-time-value)) @@ -33,19 +32,6 @@ ;;; ;;; Code: -(define (memoize proc) - "Return a memoizing version of PROC." - (let ((cache (make-hash-table))) - (lambda args - (let ((results (hash-ref cache args))) - (if results - (apply values results) - (let ((results (call-with-values (lambda () - (apply proc args)) - list))) - (hash-set! cache args results) - (apply values results))))))) - (define fold2 (case-lambda ((proc seed1 seed2 lst) |