Aviad,

You don't get a speedup because you are never calling the memoized
function with the same arguments. In your code, n is different each
time.

memoize basically creates a map of arguments to results. When you call
the function with args that it has seen before it bypasses actually
calling the underlying function and just returns the results.

If you really wanted to use memoize here then you use it on the vl
function.

Brenton

On Feb 10, 9:54 am, Aviad Reich <avi....@gmail.com> wrote:
> Thank you all!
>
> your advice were indeed very helpful!
>
> I eventually solved it using memoization. and indeed keeping only
> (http://clojure-euler.wikispaces.com/Problem+014- lxmonk if you're
> interested)
>
> This indeed is a great community, so let me try another (related) question.
>
> Comparing my solution with an identical one - but without memoization
> produces a faster result.
> I understand that caching all the results has some overhead, but how come it
> isn't balanced with the speedup from the cached values?
>
> Again,
> Thanks!
>
> Aviad
>
> On 10 February 2010 19:40, Greg <g...@kinostudios.com> wrote:
>
> > Hi Aviad,
>
> > Disclaimer: I haven't read the book, nor do I know Clojure very well.
>
> > However, based on your question (which I did read) and Brenton's hint, it
> > seems to me like the solution will involve a lazy sequence, which is a
> > frequent tool to use whenever you're dealing with a problems that involve a
> > lot of memory.
>
> > - Greg
>
> > On Feb 10, 2010, at 10:13 AM, Aviad Reich wrote:
>
> > thank you.
> > I have "-server" and "-Xmx1024m" set in my 'swank-clojure-extra-vm-args,
> > but the problem remains.
>
> > Aviad
>
> > On 10 February 2010 15:57, Joop Kiefte <iko...@gmail.com> wrote:
>
> >> (Disclaimer: never tried myself)
> >>http://hausheer.osola.com/docs/5
>
> >> 2010/2/10 Aviad R <avi....@gmail.com>
>
> >> Hi all.
>
> >>> I'm trying to learn clojure with the excellent "Programming Clojure"
> >>> and projecteuler.net. I am encountering the java heap space error, and
> >>> can't find a workaround, nor a smarter way to write my code (which I
> >>> am certain exist).
>
> >>> Trying to solve Problem 14 (some spoilers might be ahead, for those
> >>> wanting to solve it in the future).
>
> >>> The problem and my code are inhttps://pastee.org/hj3sh
>
> >>> here is the problem:
> >>> I am trying to produce a map of one O(million) key-value pairs using a
> >>> recursive function.
>
> >>> I can produce a map of the first 100000 numbers in ~1300 msecs, with
> >>> 217211 keys.
> >>> However, for 150000 and up, I get java.lang.OutOfMemoryError: Java
> >>> heap space.
>
> >>> so, I assume my code is ok on efficiency, but the recursion is too
> >>> deep.
>
> >>> am I right? can anyone suggest a way to overcome this problem?
> >>> any additional tips and thoughts on the code would be of great help to
> >>> me, as I am making my first steps in clojure.
>
> >>> Thank you,
> >>> Aviad
>
> >>> --
> >>> 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<clojure%2bunsubscr...@googlegroups.com>
> >>> For more options, visit this group at
> >>>http://groups.google.com/group/clojure?hl=en
>
> >> --
> >> Communication is essential. So we need decent tools when communication is
> >> lacking, when language capability is hard to acquire...
>
> >> -http://esperanto.net -http://esperanto-jongeren.nl
>
> >> Linux-user #496644 (http://counter.li.org) - first touch of linux in 2004
>
> >> --
> >> 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<clojure%2bunsubscr...@googlegroups.com>
> >> For more options, visit this group at
> >>http://groups.google.com/group/clojure?hl=en
>
> > --
> > 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
>
> >  --
> > 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<clojure%2bunsubscr...@googlegroups.com>
> > For more options, visit this group at
> >http://groups.google.com/group/clojure?hl=en

-- 
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

Reply via email to