<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="extensions" page="attributes" subpage="memo-function"/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: saxon:memo-function</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title"
            content="Saxonica: XSLT and XQuery Processing: saxon:memo-function"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>saxon:memo-function</h1>
      <p>This attribute may be set on the <code>xsl:function</code> 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 <code>saxon:assign</code>, or an extension function with side-effects).
Don't use it if the function accesses context information such as the context node
or <code>position()</code> or <code>last()</code>. 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).</p>
      <p><i>Memo functions are not available in Saxon-HE. When running under Saxon-HE, this attribute
is ignored with a warning.</i></p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="read-once.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>