APL
tag). An application corresponds to an expression of the
form f(...)
or f@...
.
Of course, first we look up the function by its name. If the result is a native
function, we immediately apply it (see: nat@arg
). Otherwise,
we see if the result is
a user-defined function (test: if(exp[TAG_idx] = FUN_tag
). If so, we
consider the arguments. There are two possibilities:
TAB
, we are dealing with
a normal function call f(x,y,...)
.
f @ t
. In this case,
we have to evaluate the expression t
in the hope that it will
result in a TAB
.
eval_call
with the function (exp
) and the table of arguments (arg
or val
).