Node:Method Definition Internals, Previous:Basic Method Definition, Up:Adding Methods to Generic Functions
define-method
(setter ...)
form
define-generic
or define-accessor
if a generic function is not already defined with the supplied name
method
with the parameters and body, to make a
new method instance
add-method!
to add this method to the relevant generic
function.
method (parameter ...) . body | syntax |
Make a method whose specializers are defined by the classes in
parameters and whose procedure definition is constructed from the
parameter symbols and body forms.
The parameter and body parameters should be as for
|
method
<top>
make
with metaclass <method>
and the specializers
and closure using the #:specializers
and #:procedure
keywords.
make-method specializers procedure | procedure |
Make a method using specializers and procedure.
specializers should be a list of classes that specifies the parameter combinations to which this method will be applicable. procedure should be the closure that will applied to the generic function parameters when this method is invoked. |
make-method
is a simple wrapper around make
with metaclass
<method>
.
add-method! target method | generic |
Generic function for adding method method to target. |
add-method! (generic <generic>) (method <method>) | method |
Add method method to the generic function generic. |
add-method! (proc <procedure>) (method <method>) | method |
If proc is a procedure with generic capability (see generic-capability?), upgrade it to a primitive generic and add method to its generic function definition. |
add-method! (pg <primitive-generic>) (method <method>) | method |
Add method method to the generic function definition of pg.
Implementation: |
add-method! (whatever <top>) (method <method>) | method |
Raise an error indicating that whatever is not a valid generic function. |