This takes care of evaluating an application (i.e. a
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).