feat: display function
This commit is contained in:
parent
ad66e839fa
commit
519fa4ee99
2 changed files with 15 additions and 0 deletions
|
@ -253,6 +253,19 @@ pub fn core_environment() -> Rc<Environment> {
|
||||||
}))
|
}))
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
// IO
|
||||||
|
(
|
||||||
|
"display",
|
||||||
|
Expression::NativeFunc(|args| {
|
||||||
|
if args.len() != 1 {
|
||||||
|
Err(Error::MismatchedArgCount(1, args.len()))?
|
||||||
|
}
|
||||||
|
|
||||||
|
print!("{}", args[0]);
|
||||||
|
|
||||||
|
Ok(Expression::Void.into())
|
||||||
|
}),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|(k, v)| (k.to_string(), Rc::new(v)));
|
.map(|(k, v)| (k.to_string(), Rc::new(v)));
|
||||||
|
|
|
@ -16,6 +16,7 @@ pub enum Expression {
|
||||||
Keyword(String),
|
Keyword(String),
|
||||||
String(String),
|
String(String),
|
||||||
Nil,
|
Nil,
|
||||||
|
Void,
|
||||||
|
|
||||||
// Collections
|
// Collections
|
||||||
Vector(Vec<Rc<Expression>>),
|
Vector(Vec<Rc<Expression>>),
|
||||||
|
@ -39,6 +40,7 @@ impl std::fmt::Display for Expression {
|
||||||
Expression::Keyword(val) => write!(f, ":{}", val),
|
Expression::Keyword(val) => write!(f, ":{}", val),
|
||||||
Expression::String(val) => write!(f, "{}", val),
|
Expression::String(val) => write!(f, "{}", val),
|
||||||
Expression::Nil => write!(f, "()"),
|
Expression::Nil => write!(f, "()"),
|
||||||
|
Expression::Void => write!(f, ""),
|
||||||
|
|
||||||
Expression::Vector(vec) => {
|
Expression::Vector(vec) => {
|
||||||
let s = vec
|
let s = vec
|
||||||
|
|
Loading…
Reference in a new issue