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 in https://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