VocabularycombinatorsInputs and outputs| obj | an object |
| assoc | a sequence of object/word, quotation pairs, with an optional quotation at the end |
Word descriptionCompares
obj against the first element of every pair, first evaluating the first element if it is a word. If some pair matches, removes
obj from the stack and calls the second element of that pair, which must be a quotation.
If there is no case matching
obj, the default case is taken. If the last element of
assoc is a quotation, the quotation is called with
obj on the stack. Otherwise, a
no-cond error is raised.
The following two phrases are equivalent:
{ { X [ Y ] } { Z [ T ] } } case
dup X = [ drop Y ] [ dup Z = [ drop T ] [ no-case ] if ] if
ExamplesUSING: combinators io kernel ;
IN: scratchpad
SYMBOLS: yes no maybe ;
maybe {
{ yes [ ] } ! Do nothing
{ no [ "No way!" throw ] }
{ maybe [ "Make up your mind!" print ] }
[ drop "Invalid input; try again." print ]
} case
Make up your mind!
Definition