Procedures always have attached the environment in which they were created and information about how to apply them to actual arguments. In addition to that, properties and meta-information can be stored with procedures. The procedures in this section can be used to test whether a given procedure satisfies a condition; and to access and set a procedure's property.
The first group of procedures are predicates to test whether a Scheme
object is a procedure, or a special procedure, respectively.
procedure? is the most general predicates, it returns
for any kind of procedure.
closure? does not return
for primitive procedures, and
thunk? only returns
procedures which do not accept any arguments.
#tif obj is a procedure.
Procedure properties are general properties to be attached to procedures. These can be the name of a procedure or other relevant information, such as debug hints.
Return the name of the procedure proc
Return the source of the procedure proc.
Return the environment of the procedure proc.
Return obj's property list.
Return the property of obj with name key.
Set obj's property list to alist.
In obj's property list, set the property named key to value.
Documentation for a procedure can be accessed with the procedure
Return the documentation string associated with
proc. By convention, if a procedure contains more than one expression and the first expression is a string constant, that string is assumed to contain documentation for that procedure.