static Object* NumberPrint(Context* ctx) { Object* o = StackPop(ctx->stack); if(!NumberP(o)) { abort(); // TODO: return error } Number* n = ObjectGetDataPtr(o); printf("%f", n->value); return NULL; }
LVal remove_if_not1(Function1 f,LVal v) { LVal ret; for(ret=0;v;v=Next(v)) { LVal fret=f(v); if(fret) { if(NumberP(first(v))) { ret=consi(firsti(v),ret); }else if(StringP(first(v))) { ret=conss(q(firsts(v)),ret); } } sL(fret); } return nreverse(ret); }