Changes

Jump to navigation Jump to search
4,425 bytes added ,  20:21, 31 October 2023
Created page with "This article is part of the XQuery Portal. It provides a summary of the most important features of the [https://qt4cg.org/specifications/xpath-functions-40/Overview..."
This article is part of the [[XQuery|XQuery Portal]]. It provides a summary of the most important features of the [https://qt4cg.org/specifications/xpath-functions-40/Overview.html XPath and XQuery Functions and Operators 4.0] W3C Editor's Draft.

=Otherwise operator=

<code>
$a <span style="color:#C00000">otherwise</span> $b
</code>

… is equivalent to …

<code>
if(exists($a)) then $a else $b
</code>

=Braced if, optional else=

<p>
<code>
if($a) <span style="color:#C00000">{</span> $b <span style="color:#C00000">}</span> else <span style="color:#C00000">{</span> $c <span style="color:#C00000">}</span>
</code>
</p>

<p>
<code>
if($a) <span style="color:#C00000">{</span> if($b) <span style="color:#C00000">{</span> $c <span style="color:#C00000">}</span> <span style="color:#C00000">}</span>
</code>
</p>

=Arrow map operator=

<p>
<code>
"The cat sat on the mat"<br/>
=> tokenize()<br/>
<span style="color:#C00000">=!></span> concat(".")<br/>
<span style="color:#C00000">=!></span> upper-case()<br/>
=> string-join(" ")
</code>
</p>

=Numeric literals=

<p><code>1<span style="color:#C00000">_</span>048<span style="color:#C00000">_</span>576</code></p>
<p><code><span style="color:#C00000">0x</span>FC00</code></p>
<p><code><span style="color:#C00000">0b</span>111000</code></p>

=Abbreviated function syntax=

<p><code>let $inc := <span style="color:#C00000">fn($n) {</span> $n + 1 <span style="color:#C00000"> } </span> return $inc(99)</code></p>

… is equivalent to …

<p><code>let $inc := function($n) { $n + 1 } </span> return $inc(99)</code></p>

=Focus functions (arity-one)=

<p><code>let $inc := <span style="color:#C00000">fn { . </span> + 1 <span style="color:#C00000">}</span> return $inc(99)</code></p>

<p><code>fn:filter($integers, <span style="color:#C00000">fn { . </span> > 5 <span style="color:#C00000">}</span>)</code></p>

<p><code>fn:iterate-while($number, <span style="color:#C00000">fn { . </span> < 100 <span style="color:#C00000">}</span>, <span style="color:#C00000">fn { . </span> * <span style="color:#C00000">. }</span>)</code></p>

=Maps=

20 new map functions have been added in [https://qt4cg.org/specifications/xpath-functions-40/Overview.html#maps XPath and XQuery Functions and Operators 4.0], namely

<ul>
<li><code>fn:atomic-equal</code></li>
<li><code>map:build</code></li>
<li><code>map:contains</code></li>
<li><code>map:entries</code></li>
<li><code>map:entry</code></li>
<li><code>map:filter</code></li>
<li><code>map:find</code></li>
<li><code>map:for-each</code></li>
<li><code>map:get</code></li>
<li><code>map:keys</code></li>
<li><code>map:merge</code></li>
<li><code>map:of-pairs</code></li>
<li><code>map:pair</code></li>
<li><code>map:pairs</code></li>
<li><code>map:put</code></li>
<li><code>map:remove</code></li>
<li><code>map:replace</code></li>
<li><code>map:size</code></li>
<li><code>map:substitute</code></li>
<li><code>map:values</code></li>
</ul>

Map functions are described in [https://docs.basex.org/wiki/Map_Module Map Module].

=Arrays=

30 new array functions have been added in [https://qt4cg.org/specifications/xpath-functions-40/Overview.html#array XPath and XQuery Functions and Operators 4.0], namely

<ul>
<li><code>array:append</code></li>
<li><code>array:build</code></li>
<li><code>array:empty</code></li>
<li><code>array:exists</code></li>
<li><code>array:filter</code></li>
<li><code>array:flatten</code></li>
<li><code>array:fold-left</code></li>
<li><code>array:fold-right</code></li>
<li><code>array:foot</code></li>
<li><code>array:for-each</code></li>
<li><code>array:for-each-pair</code></li>
<li><code>array:get</code></li>
<li><code>array:head</code></li>
<li><code>array:index-where</code></li>
<li><code>array:insert-before</code></li>
<li><code>array:join</code></li>
<li><code>array:members</code></li>
<li><code>array:of-members</code></li>
<li><code>array:put</code></li>
<li><code>array:remove</code></li>
<li><code>array:replace</code></li>
<li><code>array:reverse</code></li>
<li><code>array:size</code></li>
<li><code>array:slice</code></li>
<li><code>array:sort</code></li>
<li><code>array:split</code></li>
<li><code>array:subarray</code></li>
<li><code>array:tail</code></li>
<li><code>array:trunk</code></li>
<li><code>array:values</code></li>
</ul>

Array functions are described in [https://docs.basex.org/wiki/Array_Module Array Module].

=Changelog=

;Version 11.0

* Added {{Code|otherwise}} operator
administrator, Bureaucrats, editor, reviewer, Administrators
57

edits

Navigation menu