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()
|
||||
.map(|(k, v)| (k.to_string(), Rc::new(v)));
|
||||
|
|
|
@ -16,6 +16,7 @@ pub enum Expression {
|
|||
Keyword(String),
|
||||
String(String),
|
||||
Nil,
|
||||
Void,
|
||||
|
||||
// Collections
|
||||
Vector(Vec<Rc<Expression>>),
|
||||
|
@ -39,6 +40,7 @@ impl std::fmt::Display for Expression {
|
|||
Expression::Keyword(val) => write!(f, ":{}", val),
|
||||
Expression::String(val) => write!(f, "{}", val),
|
||||
Expression::Nil => write!(f, "()"),
|
||||
Expression::Void => write!(f, ""),
|
||||
|
||||
Expression::Vector(vec) => {
|
||||
let s = vec
|
||||
|
|
Loading…
Reference in a new issue