diff options
author | scgilardi <scgilardi@gmail.com> | 2008-12-11 23:06:47 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2008-12-11 23:06:47 +0000 |
commit | d41abef6f302fb09aa024dd47be2b05954f5610b (patch) | |
tree | 0c80c0f4680dd324f0c988cbe3aa4080d22b8b08 /src/clojure/contrib/memoize.clj | |
parent | 77e3f003e03c46d99204ca6d006143d22dbd7098 (diff) |
retiring clojure.contrib.memoize as memoize is now part of clojure.core
Diffstat (limited to 'src/clojure/contrib/memoize.clj')
-rw-r--r-- | src/clojure/contrib/memoize.clj | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/src/clojure/contrib/memoize.clj b/src/clojure/contrib/memoize.clj deleted file mode 100644 index 7becb30b..00000000 --- a/src/clojure/contrib/memoize.clj +++ /dev/null @@ -1,30 +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 (atom {})] - (fn [& args] - (or (@cache args) - (let [result (apply function args)] - (swap! cache assoc args result) - result))))) |