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:

In both cases, we finally call eval_call with the function (exp) and the table of arguments (arg or val).