On 14 December 2016 at 17:38, Rafo Ufoun <raf.develo...@gmail.com> wrote:

> Hi, thank you for your response !
>
> I know the '& args' notation, but I thought that this notation expected a
> collection *after *the &, so in the apply signature, we expect a fn, 4
> args and then, a sequence.
>
> In this call : (apply + 1 1 1 1 1 1 1 1 1 1 1 [2 3]), the & should be here
> : (apply + 1 1 1 1 *&* 1 1 1 1 1 1 1 [2 3])
>
> If I understand what you're saying, all the parameters after the & and the
> [2 3] sequence is converted into a single sequence, thanks to the & ?
>

Yes, though the [2 3] vector will be inside the args sequence. So if you
had:

    (apply + 1 1 1 1 1 1 1 1 1 1 1 [2 3])

And the arguments of apply are:

    [f a b c d & args]

Then:

    f = +
    a = 1
    b = 1
    c = 1
    d = 1
    args = (1 1 1 1 1 1 1 [2 3])

Internally, the function combines the last value of args with the rest.

- James

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to