factor/native/cons.c

29 lines
387 B
C

#include "factor.h"
CELL cons(CELL car, CELL cdr)
{
F_CONS* cons = allot(sizeof(F_CONS));
cons->car = car;
cons->cdr = cdr;
return tag_cons(cons);
}
void primitive_cons(void)
{
CELL car, cdr;
maybe_garbage_collection();
cdr = dpop();
car = dpop();
dpush(cons(car,cdr));
}
void primitive_car(void)
{
drepl(car(dpeek()));
}
void primitive_cdr(void)
{
drepl(cdr(dpeek()));
}