saxon:memo-function

This attribute may be set on the xsl:function element. The permitted values are "yes" and "no". Specifying "yes" indicates that Saxon should remember the results of calling the function in a cache, and if the function is called again with the same arguments, the result is retrieved from the cache rather than being recalculated. Don't use this if the function has side-effects (for example, if it calls saxon:assign, or an extension function with side-effects). Don't use it if the function accesses context information such as the context node or position() or last(). And be careful if the function constructs and returns a temporary tree: the effect will be that the function returns the same tree each time, rather than a copy of the tree (this difference will only show up if you compare the identity of nodes in the two trees).

Memo functions are not available in Saxon-HE. When running under Saxon-HE, this attribute is ignored with a warning.