All pastes #282368 Raw Edit

Wannes

public text v1 · immutable
#282368 ·published 2006-12-17 14:52 UTC
rendered paste body
call_table(TbA, TbP, Dct):
        { tbA: TbA[TAB_TAB_idx];
          tbP: TbP[TAB_TAB_idx];
          siz: size(tbA);
          if(siz = size(tbP),
            { iter(k):
                if(not(k > siz),
                  { arg: tbA[k];
                    par: tbP[k];
                    tag: par[TAG_idx];
                    cas: bind_case(tag);
                    Dct:= cas(arg, par, Dct);
                    iter(k+1) },
                    void);
              iter(1) },
              error('Illegal argument count'));
          Dct };

      call_variable(Tab, Var, Dct):
        { nam: Var[VAR_NAM_idx];
          tab: Tab[TAB_TAB_idx];
          siz: size(tab);
          exp: if(siz > 0,
                  { arg[siz]: 0;
                    iter(k):
                      if(not(k > siz),
                        { arg[k]:= eval(tab[k]);
                          iter(k+1) },
                        TAB(arg));
                    iter(1) },
                    Empty);
          add(nam, exp, Dct) };