Thanks, I missed that :)
I forgot to take into an account the short `map lookup' form.
четверг, 7 июня 2012 г., 20:28:24 UTC+4 пользователь Bronsa написал:
>
> yes, symbols like keywords lookup themselves into the second element, or
> return the third if they cannot find their value
> ('a {'a 1} 2) ;=> 1
> ('b {'a 1} 2} ;=> 2
>
> 2012/6/7 Alex Shabanov <[email protected]>
>
>> Oh, I see. This is because of the reader that interprets symbols from the
>> quoted forms in different way it does for the unquoted ones (and this
>> feature still strikes me as odd).
>> To make matters more complicated the quoted symbols seems to have some
>> meanings as functions for the clojure, since ('foo 1) -> nil, ('foo 1 2) ->
>> 2, ('foo 1 2 3 4) -> arity exception.
>>
>> четверг, 7 июня 2012 г., 20:05:43 UTC+4 пользователь Bronsa написал:
>>
>>> you' are calling (apply 'foo '(1 2)), what you want is (apply foo '(1 2))
>>> just call bar as
>>> (bar (list foo 1 2))
>>>
>>> 2012/6/7 Alex Shabanov <[email protected]>
>>>
>>>> I'm curious why the following form evaluates to 2:
>>>>
>>>> (defn foo [& more]
>>>> (println "foo(" more " )"))
>>>>
>>>> (defn bar [v]
>>>> (apply (first v) (rest v)))
>>>>
>>>> (bar '(foo 1 2))
>>>>
>>>> If the form (bar '(foo 1 2)) extended to, say, (bar '(foo 1 2 3 4)) the
>>>> arity exception will be thrown.
>>>> The behavior can be reproduced after picking another names for foo
>>>> and/or bar functions.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to [email protected]
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+unsubscribe@**googlegroups.com<clojure%[email protected]>
>>>> For more options, visit this group at
>>>> http://groups.google.com/**group/clojure?hl=en<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 [email protected]
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected]
>> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en