file: job.t package: muf status: alpha
The call{ inargs -> outargs }
syntax generates code
which accepts one compiledFunction (or a symbol with
appropriate functional value) and invokes it, after checking
that the compiledFunction's arity is as declared. (But a
call{ -> ? }
matches any function.) Thus,
if anyone complains that in Muq MUF you must do 2
2 +
to add two and two, you may easily demonstrate that
there are actually many more ways:
Stack: 2 2 + Stack: 4 pop 2 2 '+ call{ $ $ -> $ } Stack: 4 pop 2 2 :: + ; call{ $ $ -> $ } Stack: 4 pop 2 2 :: + ; : c call{ $ $ -> $ } ; c
The call{...}
syntaxis is the intended
mechanism for invoking functions which are passed as
arguments or plucked at runtime from the database.
Note: An older syntax of simply call
still
exists. It can be useful in exceptional cases where
you need and want to call a function of no
particular arity, as for example in a user shell.
Go to the first, previous, next, last section, table of contents.