define(macro)
|
The define macro: special form allows the user to declare a new variable and
initialize it to a macro. The macro must receive zero or more arguments, and its body
may have zero or more expressions. In this form, define always returns the value
to which name is initialized (Note: this value will always be a macro object). A Lisp macro is an Lambda object which is used exclusively by the compiler in the
macro substitution phase (see the morph Function). A macro Lambda is normally
unavailable outside of the compilation process. During the compiler's substitution phase,
each macro is invoked with its unevaluated arguments. The value returned by the Macro
is substituted for the original macro reference in the source. Usage Use the define macro: function when you wish to create an in-line macro, which
expands its arguments, rather than invoking a function call.
(define macro:(name arg...) faces:(var...) vars:(var...) pvars:(var...)
cvars:(var...) regs:(var...) exp...) An Lambda that will be assigned the name {name}.
Expression:
Arguments
Name
Type
Description Argument: name Symbol
The name that the Lambda will be associated with. Argument: (arg...) ---
Optional Argument. Argument list for the Lambda. Argument: faces:(var...) Symbol
Optional Argument. If present, must be followed by a interfaces feature list. Argument: vars:(var...) Symbol
Optional Argument. If present, must be followed by a local variable list. Argument: pvars:(var...) Symbol
Optional Argument. If present, must be followed by a persistent variable list. Argument: cvars:(var...) Symbol
Optional Argument. If present, must be followed by a persistent class variable list. Argument: regs:(var...) Symbol
Optional Argument. If present, must be followed by a register variable list
(up to fifty register variables are allowed). Argument: exp... ---
The Lisp statements that forms the Lambdas
Returns:
Here are a number of links to Lambda coding examples which contain this instruction in various use cases.
Here are the links to the data types of the function arguments.
Lambda | Symbol |
Here are also a number of links to functions having arguments with any of these data types.
Analytic Information Server (AIS)AIS Component Systems
|