diff --git a/src/eval.rs b/src/eval.rs index bb88165..f81a1df 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -52,17 +52,14 @@ impl Evaluator { } fn lookup_binding(&mut self, var: String) -> Option { - self.varmap.map.get(&var).map(|expr| expr.clone()) - .or_else(|| { - for frame in self.frames.iter() { - match frame.map.get(&var) { - None => (), - Some(expr) => return Some(expr.clone()), - } - } + for frame in self.frames.iter() { + match frame.map.get(&var) { + None => (), + Some(expr) => return Some(expr.clone()), + } + } - None - }) + self.varmap.map.get(&var).map(|expr| expr.clone()) } fn add_function(&mut self, name: String, function: Function) {