es-interface-unmatched(A; B; R) ==
  es-interface-accum(L,v.
                      let L' = if oob-hasleft(v)
                               then L @ [oob-getleft(v)]
                               else L
                               fi  in
                          if oob-hasright(v)
                          then remove-first(a.(R a oob-getright(v));L')
                          else L'
                          fi ;[];(A | B))



Definitions :  es-interface-accum: es-interface-accum(f;x;X) let: let oob-hasleft: oob-hasleft(x) append: as @ bs cons: [car / cdr] oob-getleft: oob-getleft(x) ifthenelse: if b then t else f fi  oob-hasright: oob-hasright(x) remove-first: remove-first(P;L) lambda: x.A[x] apply: f a oob-getright: oob-getright(x) nil: [] es-interface-or: (X | Y)

es-interface-unmatched(A;  B;  R)  ==
    es-interface-accum(\mlambda{}L,v.
                                            let  L'  =  if  oob-hasleft(v)  then  L  @  [oob-getleft(v)]  else  L  fi    in
                                                    if  oob-hasright(v)
                                                    then  remove-first(\mlambda{}a.(R  a  oob-getright(v));L')
                                                    else  L'
                                                    fi  ;[];(A  |  B))


Date html generated: 2010_08_27-PM-02_25_31
Last ObjectModification: 2010_01_26-PM-06_37_19

Home Index