# Functions and Operators

The current state of implementation of all standard functions is now documented here.

The new function `fn:analyze-string()` is implemented.

The higher-order functions `map()`, `filter()`, `fold-left()`, `fold-right()`, and `map-pairs()` are implemented.

The functions `head()` and `tail()` are implemented.

The functions `pi()`, `sqrt()`, `sin()`, `cos()`, `tan()`, `asin()`, `acos()`, and `atan()` are implemented - note that these are in the namespace `http://www.w3.org/2005/xpath-functions/math`. Unlike the other new functions, these are available whenever Saxon-PE or Saxon-EE are in use, regardless of whether XQuery 3.0 or XPath 3.0 are enabled - this is conformant because they are in a namespace to which the 1.0/2.0 specifications attach no restrictions.

The single-argument version of `string-join()` is implemented.

The two-argument version of `round()` is implemented.

The zero-argument forms of `data()`, `node-name()`, and `document-uri()` are implemented.

The new `format-integer()` function is implemented.

The new regular expression flag "q" is recognized. This causes all characters in the regex to be treated as ordinary characters, for example "." will match a single period, rather than matching any character. This is only recognized when XPath 3.0 or XQuery 3.0 is enabled.

Non-capturing groups are recognized, with the syntax `(?:aaaa)` where aaaa is any regular expression.

Next