I would say, they treat nil as an empty sequence, which makes nil, 
effectively, a unit:

(assoc nil :a :b) ; => {:a :b}
(merge nil {:a :b}) ; => {:a :b}

etc.

On Wednesday, August 29, 2012 7:36:26 PM UTC+2, Moritz Ulrich wrote:
>
> This isn't true in Clojure: http://clojure.org/lisps
>
> However, most functions treat an empty seq as nil because they call `seq' 
> on their arguments.
>
> On Wed, Aug 29, 2012 at 6:41 PM, Joop Kiefte <iko...@gmail.com<javascript:>
> > wrote:
>
>> An empty sequence is equal to nil.
>>
>> 2012/8/29 Ambrose Bonnaire-Sergeant <abonnair...@gmail.com <javascript:>
>> >:
>> > My guess is that `merge` has an invariant "if all args are nil, return 
>> nil",
>> > making calls to `seq` "contagious" from args to return value.
>> >
>> > => (merge (seq {}) (seq {}))
>> > nil
>> >
>> > Just a guess though.
>> >
>> > Thanks,
>> > Ambrose
>> >
>> > On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick 
>> > <mar...@exampler.com<javascript:>> 
>> wrote:
>> >>
>> >> Why does `(merge)` return nil? I would have expected it to return the 
>> unit
>> >> ({}) by analogy with things like this:
>> >>
>> >> (+) => 0
>> >> (*) => 1
>> >>
>> >> -----
>> >> Brian Marick, Artisanal Labrador
>> >> Contract programming in Ruby and Clojure
>> >> Occasional consulting on Agile
>> >>
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups "Clojure" group.
>> >> To post to this group, send email to clo...@googlegroups.com<javascript:>
>> >> Note that posts from new members are moderated - please be patient with
>> >> your first post.
>> >> To unsubscribe from this group, send email to
>> >> clojure+u...@googlegroups.com <javascript:>
>> >> 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 clo...@googlegroups.com<javascript:>
>> > Note that posts from new members are moderated - please be patient with 
>> your
>> > first post.
>> > To unsubscribe from this group, send email to
>> > clojure+u...@googlegroups.com <javascript:>
>> > 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 clo...@googlegroups.com<javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <javascript:>
>> 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