It is traditional Forth programming practice to include at the start of each function a comment giving the number of arguments it accepts and returns. (This sort of documentation is a good habit in any language.)
Muq MUF continues this tradition, but extends it by making the declarations in a syntax understandable to the muf compiler, as do most modern languages other than Forth:
Stack:
: x { $ $ -> $ } * ;
Stack:
2 3 x
Stack: 6
The arity declaration is enclosed in curly braces and contains one '$' for each input parameter, followed by an arrow, followed by one dot for each value returned.
Muq distinguishes single arguments from blocks of arguments:
Stack:
: |double { [] -> [] } |for i do{ i 2 * -> i } ;
Stack:
5 seq[
Stack: [ 0 1 2 3 4 |
|double
Stack: [ 0 2 4 6 8 |
The arity declaration contains one [] for each block
read, and one for each block returned. Block arguments must
in each case precede nonblock arguments.
Go to the first, previous, next, last section, table of contents.