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.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lisp/expr.rs b/src/lisp/expr.rs
index 1f3e0fb..31476c9 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, Evaluator}, 6 eval::lookup,
7 number::LispNumber, 7 number::LispNumber,
8 EnvList, 8 EnvList,
9}; 9};
@@ -18,7 +18,7 @@ pub enum Arity {
18} 18}
19 19
20impl Arity { 20impl Arity {
21 pub fn is_valid<T>(self, args: &[T]) -> bool { 21 pub fn check<T>(self, args: &[T]) -> bool {
22 match self { 22 match self {
23 Arity::Exact(a) => args.len() == a, 23 Arity::Exact(a) => args.len() == a,
24 Arity::Atleast(a) => args.len() >= a, 24 Arity::Atleast(a) => args.len() >= a,
@@ -41,7 +41,7 @@ pub struct PrimitiveFunc {
41 41
42impl PrimitiveFunc { 42impl PrimitiveFunc {
43 pub fn call(&self, args: &[LispExpr], app: &mut AppState) -> Result<LispExpr, LispError> { 43 pub fn call(&self, args: &[LispExpr], app: &mut AppState) -> Result<LispExpr, LispError> {
44 if !self.arity.is_valid(args) { 44 if !self.arity.check(args) {
45 return Err(EvalError::ArgumentCount(self.arity).into()); 45 return Err(EvalError::ArgumentCount(self.arity).into());
46 } 46 }
47 (self.closure)(args, app) 47 (self.closure)(args, app)
@@ -226,7 +226,7 @@ impl fmt::Display for LispExpr {
226 } 226 }
227 LispExpr::Comma(val, depth) => write!(f, "{}{}", ",".repeat(*depth as usize), val)?, 227 LispExpr::Comma(val, depth) => write!(f, "{}{}", ",".repeat(*depth as usize), val)?,
228 LispExpr::CommaAt(val, depth) => write!(f, "{}@{}", ",".repeat(*depth as usize), val)?, 228 LispExpr::CommaAt(val, depth) => write!(f, "{}@{}", ",".repeat(*depth as usize), val)?,
229 LispExpr::Quote(val, depth) => write!(f, "{}{}", "'".repeat(*depth as usize), val)?, 229 LispExpr::Quote(val, depth) => write!(f, "{}{}", "'".repeat(*depth as usize - 1), val)?,
230 }; 230 };
231 Ok(()) 231 Ok(())
232 } 232 }