Thanks, all. Memoize appears to be exactly what I was looking for. Is
there no end to discovering eminently useful capabilities hidden away
some place in Clojure's API?
For the moment I don't see what Meikel Brandmeyer's lazymap gives me
that memoize doesn't, but I will look into it.
--Larry
On 1/21/13 1:55 AM, Jozef Wagner wrote:
Or maybe https://bitbucket.org/kotarak/lazymap ?
On Monday, January 21, 2013 7:38:01 AM UTC+1, Alex Baranosky wrote:
memoize, or delay maybe
On Sun, Jan 20, 2013 at 10:29 PM, AtKaaZ <atk...@gmail.com
<javascript:>> wrote:
memoize?
On Mon, Jan 21, 2013 at 7:27 AM, Larry Travis
<tra...@cs.wisc.edu <javascript:>> wrote:
One of the neat things about Clojure (maybe all functional
languages) is that functions can be defined either
extensionally or intensionally. How can one create a
Clojure structure that mixes these two types of definition?
That is, I would like to define a function f that saves
its result the first time it is called against any
particular argument so that if and when f is later called
against the same argument, it does a look-up via a hash
map rather than repeating a possibly expensive
computation. I think I see how to do this with a ref to a
mutable map (where, given an argument k, f would first try
to find (f k) in the map but, if k is not currently a key
of the map, the function would compute the value v = (f k)
and then, in addition to returning v, add the entry <k v>
to the map as a side effect. But this seems ugly. Is there
some way to do what I want here without making explicit
use of refs?
Lazy-seqs don't give me what I want because the arguments
to be given to f don't occur in any kind of predictable
sequence.
--Larry
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en