Пример #1
0
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;
}
Пример #2
0
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);
}