Your cseq is not lazy, and some of the sequences can be quite long, so
it wouldn't surprise me if that's the source of your problem.

You can test if this is the problem by doing something like:
(dorun (map cseq (range 1 1000000))) which removes the max-key from
the computation entirely.

You'll probably need to reformulate cseq with lazy lists.  Even then,
you will likely find that this program will be too slow without
further optimizations (e.g., memoization or dynamic programming).

That's the nature of project Euler problems; the "obvious" way to
solve the problem is often too slow and further cleverness is
required.

On Mon, Jan 17, 2011 at 7:53 AM, Andreas Liljeqvist <bon...@gmail.com> wrote:
> Hi.
>
> I am using max-key to get the longest sequence from a couple of sequences.
>
> (defn cseq [n]
>   (if (= 1 n)
>     [1]
>     (cons n (cseq (if (even? n)
>             (/ n 2)
>             (+ (* 3 n) 1 ))))))
>
> (apply max-key count (map cseq (range 1 1000000)))
>
> This gives me a heap error.
>
> To my understanding max-key should keep at most two sequences in memory.
> I could certainly solve this by working around the problem, but I want to
> understand where my logic fails.
> Thankful for any help.
>
>
> --
> 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
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to