functions [ {+|-}UXkmtTuz ] [ name ... ]
functions -M mathfn [ min [ max [ shellfn ] ] ]
functions -M [ -m pattern ... ]
functions +M [ -m ] mathfn
       Equivalent to typeset -f, with the exception of the
-M  option.

       Use of the -M option may not be combined  with  any
       handled by typeset -f.

       functions -M mathfn defines mathfn as the name of a
       function  recognised  in  all forms of arithmetical
       see  the   section   `Arithmetic   Evaluation'   in
       default mathfn may take any number  of  comma-sepa-
       If  min is given, it must have exactly min args; if
       are  both given, it must have at least min  and  at
       max  may  be  -1 to indicate that there is no upper

       By default the function is implemented by a   shell
       the   same  name;  if shellfn is specified it gives
       corresponding shell function while  mathfn  remains
       in   arithmetical  expressions.   The  name  of the
       mathfn (not shellfn as would usually be the  case),
       option  FUNCTION  ARGZERO  is in effect.  The posi-
       in the shell function correspond to  the  arguments
       matical  function  call.   The  result  of the last
       expression  evaluated  inside  the  shell  function
(even if it is  a

       form   that  normally  only returns a status) gives
       the mathematical function.

       functions -M with no arguments lists all such user-
       tions   in   the  same  form as a definition.  With
       option -m and a list of arguments,  all   functions
       matches one of the pattern arguments are listed.

       function  +M removes the list of mathematical func-
       additional option -m the arguments are  treated  as
       all  functions  whose  mathfn  matches  the pattern
       Note that the shell function implementing  the  be-
       removed  (regardless  of whether its name coincides

       For example, the following prints the cube of 3:

              zmath cube() { (( $1 * $1 * $1 )) }
              functions -M cube 1 1 zmath cube
              print $(( cube(3) ))

autoload [ {+|-}UXkmtz ] [ -w ] [ name ... ]
       Equivalent to functions -u, with the  exception  of
-X/+X and -w.

       The  flag -X may be used only inside a shell  func-
       not be followed by a name.  It causes  the  calling
       marked  for autoloading and then immediately loaded
       with  the  current  array of positional  parameters
       This replaces the previous definition of the  func-
       function  definition is found, an error is  printed
       tion remains undefined and marked for autoloading.

       The  flag +X attempts to load each name as  an  au-
       tion,  but  does  not execute it.  The exit  status
       cess)  if  the  function was not previously defined
       tion for it was found.  This does not  replace  any
       nition of the function.  The exit status is nonzero
(failure) if

       the  function  was  already  defined  or   when  no
       found.   In  the  latter case the function  remains
       marked  for  autoloading.   If ksh-style  autoload-
       the  function  created will contain the contents of
       a call to the function itself appended to it,  thus
       ksh  autoloading behaviour on the first call to the
       the  -m flag is also given each name is treated  as
       all  functions  already  marked  for  autoload that
       are loaded.

       With the -w flag, the names are taken as  names  of
       with  the  zcompile  builtin, and all functions de-
       marked for autoloading.

       The flags -z and -k mark the  function  to  be  au-
       zsh  or  ksh  style,  as if the option KSH AUTOLOAD
       were  set,  respectively.  The flags  override  the
       option at the time the function is loaded.

       Note that the autoload command makes no attempt  to
       shell  options  set  during the loading  or  execu-
       have  any  particular value.  For this, the emulate
       used:

              emulate zsh -c 'autoload -Uz func'

       arranges  that  when  func  is loaded the shell  is
       emulation,  and this emulation is also applied when
