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