Hi,

when using an abbreviated syntax for map:get, the following expression is evaluated by Saxon correctly:

let $m := map{'x' := 5, 'y' := 'hi'} return $m('x') eq 5

but this one is rejected as syntactically incorrect:

map{'x' := 5, 'y' := 'hi'}('x') eq 5

I have to write an additional pair of parentheses:

(map{'x' := 5, 'y' := 'hi'})('x') eq 5

 

Is this the desired behavior?

 

It surprised me a little, since both of the following expressions are accepted:

function($x) {$x + 1}(2)

(function($x) {$x + 1})(2)

 

Jakub.



Jakub Malư

 

Ph. D. candidate

XML Research Group

Department of Software Engineering

Faculty of Mathematics and Physics
Charles University in Prague, Czech Republic
www.jakubmaly.cz