aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/memoize/memoize.clj
diff options
context:
space:
mode:
authorscgilardi <scgilardi@gmail.com>2008-11-16 17:20:48 +0000
committerscgilardi <scgilardi@gmail.com>2008-11-16 17:20:48 +0000
commit9784ebfab888a43f0d18663d39de744cf997f38a (patch)
treebbaf3d78c092f8622c5f0d2f9c86d01256345fae /src/clojure/contrib/memoize/memoize.clj
parentb73be8505e49ba987e33ce98a1cba9549512265e (diff)
delete my contribs at their pre-SVN1088 locations
Diffstat (limited to 'src/clojure/contrib/memoize/memoize.clj')
-rw-r--r--src/clojure/contrib/memoize/memoize.clj31
1 files changed, 0 insertions, 31 deletions
diff --git a/src/clojure/contrib/memoize/memoize.clj b/src/clojure/contrib/memoize/memoize.clj
deleted file mode 100644
index 558106c6..00000000
--- a/src/clojure/contrib/memoize/memoize.clj
+++ /dev/null
@@ -1,31 +0,0 @@
-;; Copyright (c) Stephen C. Gilardi. All rights reserved.
-;; The use and distribution terms for this software are covered by the
-;; Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
-;; which can be found in the file CPL.TXT at the root of this distribution.
-;; By using this software in any fashion, you are agreeing to be bound by
-;; the terms of this license.
-;; You must not remove this notice, or any other, from this software.
-;;
-;; File: memoize.clj
-;;
-;; scgilardi (gmail)
-;; 02 June 2008
-;;
-;; Based on Common Lisp code from:
-;; http://asymmetrical-view.com/talks/lisp-presentation/lisp-presentation.pdf
-
-(ns clojure.contrib.memoize)
-
-(defn memoize
- "Returns a memoized version of a referentially transparent function. The
- memoized version of the function keeps a cache of the mapping from arguments
- to results and, when calls with the same arguments are repeated often, has
- higher performance at the expense of higher memory use."
- [function]
- (let [cache (ref {})]
- (fn [& args]
- (or (@cache args)
- (let [result (apply function args)]
- (dosync
- (commute cache assoc args result))
- result)))))