On Sun, Oct 7, 2012 at 10:02 PM, Alan Malloy <a...@malloys.org> wrote:
> On Sunday, October 7, 2012 7:56:53 PM UTC-7, Ben wrote:
>>
>> On Sun, Oct 7, 2012 at 3:53 PM, Alan Malloy <al...@malloys.org> wrote:
>> > This is nonsense. If s is fixed-size at compile-time, you would never
>> > use
>> > apply to begin with. Why bother with (applyn 10 + [1 2 3 4 5 6 7 8 9
>> > 10])
>> > when you could just write (+ 1 2 3 4 5 6 7 8 9 10)?
>>
>> Why bother to write (+ 1 2 3 4 5 6 7 8 9 10) when you could just write 55?
>>
>> In order to write (+ 1 2 3 4 5 6 7 ...) you need more than just the
>> length of the list, you need to know its contents as well.
>>
>> (let [s (take 10 (infinite-stream-of-random-integers))] (applyn 10 + s))
>>
>> will work right---you know the length of s---but you're not going to
>> be able to just directly apply +.
>
>
> Of course apply will work fine.

What I meant by "directly apply +" wasn't "call apply with first
argument +", but "call (+ 1 2 ...)". I was responding to your
suggestion that one just write (+ 1 2 3 4 5 6 7 8 9 10).

> All applyn does is make the argument-unpacking code happen in your clojure
> source file instead of in RestFn.java, which is optimized for it, in
> exchange for the extremely small cost of dispatching on length.

Sure, but that's a different reason for finding applyn silly than the
one you initially gave, which was that one could bypass calling apply
altogether and just write (+ 1 2 ...).

-- 
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks,
which may be sweet, aromatic, fermented or spirit-based. ... Family
and social life also offer numerous other occasions to consume drinks
for pleasure." [Larousse, "Drink" entry]

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