use tulisp::{Error, TulispContext};
fn main() -> Result<(), Error> {
let mut ctx = TulispContext::new();
ctx.defun("square", |n: i64| -> i64 { n * n });
let program = "(+ (square 3) (square 4))";
let result = ctx.eval_string(program)?;
println!("{program} => {}", result.as_int()?);
Ok(())
}