Die folgende XQuery-Schnipsel:XQuery: Wie kommen beide "() =()" und "() eq()" zu false aus?
let $x :=()
return if (not($x eq $x) and not($x = $x))
then "wat"
else "makes sense"
kehrt wat
. Warum? Die Effective Boolean Value einer leeren Sequenz false
sein soll, aber beide false() eq false()
und false() = false()
bewerten zu true
...
Ah, tatsächlich. Und da der Operator '=' implizit ein existentieller Operator ist ("es gibt zwei Elemente in der Sequenz wie ..."), macht es Sinn, dass das Aufrufen leerer Sequenzen wahr ist, egal was der allgemeine Operator ist. – Ted