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