That is not in fact an adequate workaround ---

(eval `(apply + ~@(take 9001 (iterate inc 1))))  ;; OVER 9000!!!

or, alternately

(eval (cons 'apply (cons '+ (take 9001 (iterate inc 1)))))

will fail just as in the addition examples.

It's not true that you can just use an apply in your auto generated
code, you would instead have to do something like a tree of function
calls, so It may be worth increasing the limit for for the sake of
enabling machine generated code.

What are you peoples' thoughts on this?

--Robert McIntyre



On Sun, Nov 14, 2010 at 12:54 PM, Mike Meyer
<mwm-keyword-googlegroups.620...@mired.org> wrote:
> On Sun, 14 Nov 2010 08:43:11 -0500
> Robert McIntyre <r...@mit.edu> wrote:
>> @Mike Meyer
>> Using apply is different than what I'm doing.
>
> Yup.
>
>> When I use eval I'm trying to evaluate a huge s-expression.
>> When you use apply you're evaluating a s-expression with three
>> elements. Same thing with the count form (except with two elements).
>> The problem isn't because I'm calling eval or not using idiomatic
>> clojure; I just wrote it that way so it would only take one line.
>
> I did agree that there was a problem.
>
> The thing is, quasiquotes in clojure were designed for use in macros,
> and using them outside macros sometimes generates weird results: I
> wanted to make sure that wasn't the case here. My first attempt - in
> idiomatic clojure - didn't recreate it. So I went a bit further afield
> to do so.
>
>> Are we really OK with having a 30 year old (Common Lisp/Lisp Machine)
>> that operates at megahertz speeds do better than (clojure/JVM) here?
>
> Yes, I'm OK that a LISP running on an architecture that's the end
> result of decades of research on creating machines that run LISP well
> has fewer and/or higher limits than a LISP running on a VM designed to
> run Java.
>
> I'm not even sure it's worth any effort in fixing. You're not going to
> run into this limit except in machine-generated code, and there's an
> easy work-around: generate (apply fun (sequence)) instead of (fun
> sequence).
>
>     <mike
> --
> Mike Meyer <m...@mired.org>              http://www.mired.org/consulting.html
> Independent Network/Unix/Perforce consultant, email for more information.
>
> O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
>
> --
> 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