On Sunday, April 29, 2012, Andreas Röhler <andreas.roehler@online.de> wrote:
> Am 29.04.2012 19:08, schrieb Drew Adams:
>>>>
>>>> (string= nil "")
>>>
>>> (if ""
>>>      (message "%s" "empty string proved true")
>>>        (message "%s" "empty string proved false"))
>>> ==>  "empty string proved true"
>>
>> "" is not equal or eq or eql to nil.
>> But "" is string= to nil.
>>
>>
>
> in other words said:
>
> if the empty list is nil, why the empty string should yield true?
>
> for me
>
> (equal nil "")==> t
>
> would be plausible

Think of it as converting nil to a string when necessary.  `string=' requires strings, so nil is treated as "".  `equal' doesn't require strings, so nil is treated as nil.

--
-PJ

Gehm's Corollary to Clark's Law: Any technology distinguishable from
magic is insufficiently advanced.