multi-methods vocabulary
Factor documentation > Factor handbook > Vocabulary index


Summary
Experimental multiple dispatch implementation

Meta-data
Tags:extensions
Authors:Slava Pestov


Words

Tuple classes
ClassSuperclassSlots
no-method tuplearguments generic


Predicate classes
ClassSuperclass
generic word
method-body word
method-spec array


Parsing words
WordSyntax
GENERIC:
M:
METHOD:


Symbol words
args
hooks
total


Ordinary words
WordStack effect
(METHOD:)( -- method def )
(multi-predicate)( class picker -- quot )
<method>( specializer generic -- word )
argument-count( methods -- n )
canonicalize-specializer-0( specializer -- specializer' )
canonicalize-specializer-1( specializer -- specializer' )
canonicalize-specializer-2( specializer -- specializer' )
canonicalize-specializer-3( specializer -- specializer' )
canonicalize-specializers( methods -- methods' hooks )
classes<( seq1 seq2 -- lt/eq/gt )
create-method( classes generic -- method )
create-method-in( specializer generic -- method )
define-generic( word effect -- )
drop-n-quot( n -- quot )
forget-method( specializer generic -- )
make-default-method( methods generic -- quot )
make-generic( generic -- quot )
maximal-element( seq quot -- n elt )
method( classes word -- method )
method-word-name( specializer generic -- string )
method-word-props( specializer generic -- assoc )
method>spec( method -- spec )
methods( word -- alist )
multi-dispatch-quot( methods generic -- quot )
multi-predicate( classes -- quot )
niceify-method( seq -- seq )
no-method( arguments generic -- * )
parse-method( -- quot classes generic )
picker( n -- quot )
prepare-method( method n -- quot )
prepare-methods( methods -- methods' prologue )
reveal-method( method classes generic -- )
scan-new-method( -- method )
sort-methods( alist -- alist' )
topological-sort( seq quot -- newseq )
update-generic( word -- )
with-methods( word quot -- )


Class predicate words
WordStack effect
generic?( object -- ? )
method-body?( object -- ? )
method-spec?( object -- ? )
no-method?( object -- ? )


Files
resource:extra/multi-methods/multi-methods.factor
resource:extra/multi-methods/multi-methods-docs.factor
resource:extra/multi-methods/tests/syntax.factor
resource:extra/multi-methods/tests/definitions.factor
resource:extra/multi-methods/tests/topological-sort.factor
resource:extra/multi-methods/tests/legacy.factor
resource:extra/multi-methods/tests/canonicalize.factor


Children from resource:extra
VocabularySummary
multi-methods.testsmulti-methods.tests vocabulary