aboutsummaryrefslogtreecommitdiff
path: root/src/lisp/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp/expr.rs')
-rw-r--r--src/lisp/expr.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lisp/expr.rs b/src/lisp/expr.rs
index 9f2dc8d..1f3e0fb 100644
--- a/src/lisp/expr.rs
+++ b/src/lisp/expr.rs
@@ -3,7 +3,7 @@ use std::{cmp::PartialEq, convert::TryFrom, fmt};
3use crate::app::AppState; 3use crate::app::AppState;
4use crate::lisp::{ 4use crate::lisp::{
5 error::{EvalError, LispError}, 5 error::{EvalError, LispError},
6 eval::lookup_extended, 6 eval::{lookup, Evaluator},
7 number::LispNumber, 7 number::LispNumber,
8 EnvList, 8 EnvList,
9}; 9};
@@ -36,6 +36,7 @@ impl Arity {
36pub struct PrimitiveFunc { 36pub struct PrimitiveFunc {
37 pub arity: Arity, // minimim arity 37 pub arity: Arity, // minimim arity
38 pub closure: fn(&[LispExpr], &mut AppState) -> Result<LispExpr, LispError>, 38 pub closure: fn(&[LispExpr], &mut AppState) -> Result<LispExpr, LispError>,
39 pub name: &'static str,
39} 40}
40 41
41impl PrimitiveFunc { 42impl PrimitiveFunc {
@@ -123,8 +124,8 @@ impl LispExpr {
123 (LispExpr::Char(s), LispExpr::Char(o)) => Ok(s == o), 124 (LispExpr::Char(s), LispExpr::Char(o)) => Ok(s == o),
124 (LispExpr::BoolLit(s), LispExpr::BoolLit(o)) => Ok(s == o), 125 (LispExpr::BoolLit(s), LispExpr::BoolLit(o)) => Ok(s == o),
125 (LispExpr::Ident(s), LispExpr::Ident(o)) => { 126 (LispExpr::Ident(s), LispExpr::Ident(o)) => {
126 let s = lookup_extended(envs, s)?; 127 let s = lookup(envs, s)?;
127 let o = lookup_extended(envs, o)?; 128 let o = lookup(envs, o)?;
128 s.compare(&o, envs) 129 s.compare(&o, envs)
129 } 130 }
130 (LispExpr::PrimitiveFunc(s), LispExpr::PrimitiveFunc(o)) => { 131 (LispExpr::PrimitiveFunc(s), LispExpr::PrimitiveFunc(o)) => {