functionp


       functionp() - determine whether or not a given variable is
       a function pointer, and if so what kind



SYNOPSIS

       int functionp( mixed arg );



DESCRIPTION

       Return nonzero if `arg' is a function pointer and zero (0)
       otherwise.  Function pointers are variables of type 'func-
       tion' as indicated  in  the  documentation  for  the  type
       'function', for example:

       f = (: obj, func :);

       The  return  value  indicates the type of function pointer
       using  the  values  given  in  the  driver  include   file
       "include/function.h".

       function pointer type      value ---------------------
       ----- call_other            FP_CALL_OTHER  lfun
       FP_LOCAL   efun              FP_EFUN  simul_efun
       FP_SIMUL functional            FP_FUNCTIONAL

       In addition, the following values will be  added  in  some
       cases: (arguments provided)      FP_HAS_ARGUMENTS (creator
       has  been   dested)   FP_OWNER_DESTED   (not   rebindable)
       FP_NOT_BINDABLE

       The  last  set  of values are bit values and can be tested
       with bit operations.  The value FP_MASK  is  provided  for
       ignoring  the bit values and testing the basic type of the
       function pointer.

       Examples:

       To test if a function variable is an efun pointer:

       if ((functionp(f) & FP_MASK) == FP_EFUN) ...

       to test if it has args:

       if (functionp(f) & FP_HAS_ARGUMENTS) ...



SEE ALSO

       mapp(3),  stringp(3),  pointerp(3),  objectp(3),  intp(3),
       bufferp(3), floatp(3), nullp(3), undefinedp(3), errorp(3),
       bind(3), lpc/types/function