Simple inline functions
An abbreviated syntax is available for defining simple inline functions. For example,
the expression fn{.+1}
represents a function that takes a single argument and returns the value of that
argument plus one. A simple inline function takes a single argument with required type item()
,
and returns any sequence (type item()*
). The function body is evaluated with a singleton focus based
on the supplied argument value.
Simple inline functions are particularly convenient when providing functions as arguments to higher-order functions,
many of which accept a single item as their one argument.
For example, to sort employees in order of salary, you can write sort(//employee, fn{@salary})
.
Simple inline functions can access externally-defined local variables in the usual way (that is, they have a closure).
The expression fn{EXPR}
is a syntactic shorthand for function($x as item()) as item()* {$x!(EXPR)}
.