|
Macros
Using macros.
MacrosMacros are an extension to the core Cat language, called MetaCat. The Cat interpreter will parse and load macros, but will not apply them unless instructed to using the '#m' or #o meta-command. The standard library macros can be found at For more informationFor more information on MetaCat macros see http://www.cat-language.com/metacat.html. ExamplesSome example of Meta-cat macros: macro { swap swap } => { }
macro { dup pop } => { }
macro { quote apply } => { }
macro { $b $a swap } => { $a $b }
macro { $a pop } => { }
macro { [$A] apply } => { $A }
macro { $a quote } => { [$a] }
macro { $b [$A] dip } => { $A $b }
macro { true [$B] [$A] if } => { $B }
macro { false [$B] [$A] if } => { $A }
macro { [$B] [$A] compose } => { [$B $A] }
macro { map $a map } => { $a compose map }
macro { unit $a filter } => { $a apply [unit] [pop nil] if }
macro { unit $a map } => { $a apply unit }
macro { unit $b $a fold } => { $a apply }The standard library macros are defined at: http://cat-language.googlecode.com/svn/trunk/macros.cat |
Sign in to add a comment