esharp-freevars(x) ==
  case(x)
    var(v)=>[v]
    basic(b)=>[]
    operator(op)=>[]
    f(a)=>rf,ra.rf  ra
    lambda z. b=>rb.list-diff(AtomDeq;rb;[z])
    let lhs = rhs in bdy=> rr,rb.let fv,bv = lhsvars(lhs) 
                                 in list-diff(AtomDeq;rr  rb  fv;bv))



Definitions occuring in Statement :  esharp_exp_ind: esharp_exp_ind,  lhsvars: lhsvars(lhs),  spread: spread def,  cons: [car / cdr],  nil: [],  list-diff: list-diff(eq;as;bs),  l-union: as  bs,  atom-deq: AtomDeq
Definitions :  esharp_exp_ind: esharp_exp_ind,  cons: [car / cdr],  nil: [],  spread: spread def,  list-diff: list-diff(eq;as;bs),  l-union: as  bs,  atom-deq: AtomDeq
FDL editor aliases :  esharp-freevars

esharp-freevars(x)  ==
    case(x)
        var(v)=>[v]
        basic(b)=>[]
        operator(op)=>[]
        f(a)=>rf,ra.rf  \mcup{}  ra
        lambda  z.  b=>rb.list-diff(AtomDeq;rb;[z])
        let  lhs  =  rhs  in  bdy=>  rr,rb.let  fv,bv  =  lhsvars(lhs) 
                                                                  in  list-diff(AtomDeq;rr  \mcup{}  rb  \mcup{}  fv;bv))


Date html generated: 2011_08_17-PM-05_56_51
Last ObjectModification: 2011_02_03-PM-05_35_57

Home Index