- From: Kay, Michael <Michael.Kay@softwareag.com>
- Date: Fri, 12 Sep 2003 20:19:21 +0200
- To: Per Bothner <per@bothner.com>, public-qt-comments@w3.org
- Message-ID: <DFF2AC9E3583D511A21F0008C7E62106073DD117@daemsg02.software-ag.de>
The special rule only affects the static type inferencing, not the dynamic
semantics - I guess you knew this.
My understanding of the reasoning was that it (a) caused users too much
grief if the system failed to recognize that $seq[1] was a singleton, and
(b) would have introduced too much complexity to the static semantics to
introduce the concept of a constant sub-expression. So recognizing the
integer literal case was a compromise.
But it's also my understanding that the formal semantics is moving in the
direction of allowing the implementor to be cleverer than this if they can.
Michael Kay
> -----Original Message-----
> From: Per Bothner [mailto:per@bothner.com]
> Sent: 12 September 2003 18:18
> To: public-qt-comments@w3.org
> Subject: why special rule for numeric literal in a predicate?
>
>
>
> I'm curious why there is a special rule for a numeric
> literal in (for example):
>
> ForwardStep Predicates "[" Numeric "]"
>
> By my reading, this expression:
> STEP[2]
> is treated differently from:
> STEP[1+1]
> or:
> let $x as xs:integer := 2 return STEP[$x]
> or:
> declare variable $two := {2};
> STEP[$two]
>
> My guess is that the translation to core XQuery
> is meant to be a purely syntactic translation,
> so it has to be done before type analysis. Plus for the
> re-write to be valid you would have to require that the
> predicate be constant over the sequence, which I supposed is
> difficult to define unless you introduce the concept of
> "constant expression".
>
> But given the restricted applicability of the
> simplication for just numeric literals, what's
> the point? Is there is a specific need for a
> stricter typing of just the numeric-literal case?
> --
> --Per Bothner
> per@bothner.com http://per.bothner.com/
>
>
>
Received on Friday, 12 September 2003 14:22:21 UTC