pub fn lookup(&self, symbol: &Exp) -> Option<Exp> {
        match symbol {
            Exp::Symbol(s) => match self.data.get(s) {
                Some(def) => Some(def.clone()),
                None => self.outer.as_ref().and_then(|o| o.borrow().lookup(symbol)),
            },
            _ => None,
        }
    }
/// Find the definition of a symbol.
Find the definition of a symbol.
Find the definition of a symbol .
pub fn lookup(&self, symbol: &Exp) -> Option<Exp> {
        match symbol {
            Exp::Symbol(s) => match self.data.get(s) {
                Some(def) => Some(def.clone()),
                None => self.outer.as_ref().and_then(|o| o.borrow().lookup(symbol)),
            },
            _ => None,
        }
    }
pub fn lookup ( & self , symbol : & Exp ) -> Option < Exp > { match symbol { Exp :: Symbol ( s ) => match self . data . get ( s ) { Some ( def ) => Some ( def . clone ( ) ) , None => self . outer . as_ref ( ) . and_then ( | o | o . borrow ( ) . lookup ( symbol ) ) , } , _ => None , } }
Find the definition of a symbol.
Find the definition of a symbol .
&self
symbol
&Exp
&self
symbol
&Exp