eclisp 0.1.0

Bindings for Embeddable Common Lisp
use eclisp::{Lisp, LispError};

fn main() -> Result<(), LispError> {
    let lisp = Lisp::new()?;

    let value = lisp.eval("(+ 1 2)")?;
    println!("Result of (+ 1 2): {:?}", value.try_as_i64());

    let list = lisp.eval("'(10 20 30)")?;

    println!("Result of '(10 20 30): {}", list);
    for value in list.iter() {
        println!("{}", value?);
    }

    lisp.eval("(defun double (n) (* n 2))")?;
    let doubled = lisp.call("double", &[&lisp.int(3)?])?;
    println!("3 doubled = {}", doubled);

    Ok(())
}