tulisp 0.25.1

An embeddable lisp interpreter.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use crate::{Error, TulispContext, TulispObject, destruct_eval_bind};

pub(crate) fn add(ctx: &mut TulispContext) {
    fn equal(ctx: &mut TulispContext, args: &TulispObject) -> Result<TulispObject, Error> {
        destruct_eval_bind!(ctx, (object1 object2) = args);
        Ok(object1.equal(&object2).into())
    }
    ctx.add_special_form("equal", equal);

    fn eq(ctx: &mut TulispContext, args: &TulispObject) -> Result<TulispObject, Error> {
        destruct_eval_bind!(ctx, (object1 object2) = args);
        Ok(object1.eq(&object2).into())
    }
    ctx.add_special_form("eq", eq);
}