------------------
I think this has been batted around here before, but would somebody mind 
refreshing us as to whether there is any good reason plain {} doesn't 
generate () (an empty sequence)?
---------------

If you want historical rationality you will have to ask someone else.


If you want deductive logic ...

{ expr }  parses expr ... it returns whatever expr is.  If there is nothing 
there then thats nothing.    () is not nothing, its something.   So it would be 
silly and inconsistent if {} produced something rather than nothing.

The only time that I can see that it is actually inconvenient ("annoying"?) 
that {} produces nothing rather then something is in this particular case with 
comments embedded
within literal constructors.   Buy why single out () as the something it should 
produce ?   There is nothing special about the empty sequence that makes it the 
best candidate for a fillin for nothing.

Also there is the other use of {} which is in functions 

declare function x () { };


Which is rightfully an error because there is no expression and should be.
Although one could argue that it should be treated as 
declare function x () { ()};

But then one could argue that in C 

foo() { }

should be treated as
foo() { return NULL ; }

But that would be silly now wouldn't it ?


In the end I am not going to try to justify this rule in XQuery ... it just is 
the way it is.


-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]
Phone: +1 812-482-5224
Cell:  +1 812-630-7622
www.marklogic.com





_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to