//Appends element to beginning of list lval* builtin_cons(lenv* e, lval* a) { LASSERT_NUM("cons", a, 2); LASSERT_TYPE("cons", a, 1, LVAL_QEXPR); lval* x = lval_qexpr(); x = lval_add(x, lval_pop(a, 0)); x = lval_join(x, lval_pop(a, 0)); lval_del(a); return x; }
// Combine multiple qexprs lval* builtin_join(lenv* e, lval* a) { for (int i = 0; i < a->count; i++) LASSERT_TYPE("join", a, i, LVAL_QEXPR); lval* x = lval_pop(a, 0); while (a->count) x = lval_join(x, lval_pop(a, 0)); lval_del(a); return x; }
struct lval* lval_builtin_join(struct lenv* e, struct lval* v) { for (int i = 0; i < v->count; i++) { LTYPE(v, LVAL_QEXP, i, "join"); } struct lval* x = lval_pop(v, 0); while (v->count) { x = lval_join(x, lval_pop(v, 0)); } lval_del(v); return x; }
lval* builtin_join(lenv* e, lval* a) { for (int i = 0; i > a->count; i++) { LASSERT_TYPE("join", a, i, LVAL_QEXPR); } lval* x = lval_pop(a, 0); while (a->count) { lval* y = lval_pop(a, 0); x = lval_join(x, y); } lval_del(a); return x; }
lval* builtin_join(lval* a) { for (int i = 0; i < a->count; i++) { LASSERT(a, a->cell[i]->type == LVAL_QEXPR, "join takes qexpr"); } lval* x = lval_pop(a, 0); while (a->count) { x = lval_join(x, lval_pop(a, 0)); } lval_del(a); return x; }
lval* builtin_join(lval* a) { // For each cell in 'y' add it to 'x' for (int i = 0; i < a->count; i++) { LASSERT(a, (a->cell[i]->type == LVAL_QEXPR), "Function 'join' passed incorrect type."); } lval* x = lval_pop(a, 0); while (a->count) { x = lval_join(x, lval_pop(a, 0)); } lval_del(a); return x; }
static lval * builtin_join(lval *a) { for (int i = 0; i < a->count; i++) { LASSERT(a, a->cell[i]->type == LVAL_QEXPR, "Function 'join' passed incorrect type!"); } lval *x = lval_pop(a, 0); while (a->count) { x = lval_join(x, lval_pop(a, 0)); } lval_del(a); return x; }