[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: () eq () vs () = ()
At 2011-09-30 14:28 +0100, Andrew Welch wrote:
>> If () = () is false, then it's intuitive (to me) that deep-equal((), >> ()) is also false. The one liner saying that it should be true just >> seems like it could easily say false. > > No, that would be wrong/confusing. deep-equal returns true because the > sequences are the same, = returns false because no items in either sequence > are equal. Because eq is in the set of "value comparisons" and there are no values to operate on, thus, no items in either sequence are equal. Functions 3.5.1 says "Value comparisons are used for comparing single values". Note that you ask "why not true()?", but the return from eq with an empty sequence operand isn't false(). Rather it is () as if to say "there are no comparisons returned from this expression". Converting that to Boolean is false(), but the return itself isn't false(). You only get a true() if there are two singletons and they compare equal. You are getting a non-empty result: a sequence of one value of true(). With either operand as the empty set you are getting a value comparison response of "no response" with (). An empty response. I think David said it the best and wish I'd thought of saying it that way myself! . . . . . . . . Ken
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|