// (tick (cnt1 . cnt2) . prg) -> any any doTick(any ex) { any x; clock_t n1, n2, save1, save2; struct tms tim; static clock_t ticks1, ticks2; save1 = ticks1, save2 = ticks2; times(&tim), n1 = tim.tms_utime, n2 = tim.tms_stime; x = prog(cddr(ex)); times(&tim); n1 = (tim.tms_utime - n1) - (ticks1 - save1); n2 = (tim.tms_stime - n2) - (ticks2 - save2); setDig(caadr(ex), unDig(caadr(ex)) + 2*n1); setDig(cdadr(ex), unDig(cdadr(ex)) + 2*n2); ticks1 += n1, ticks2 += n2; return x; }
static pSlipObject definition_value(pSlip gd, pSlipObject exp, pSlipEnvironment env) { if (sIsObject_Symbol(cadr(exp)) == S_TRUE) { return caddr(exp); } else { return make_lambda(gd, cdadr(exp), cddr(exp)); } }
object *definition_value(object *exp) { return is_symbol(cadr(exp)) ? caddr(exp) : make_lambda(cdadr(exp), cddr(exp)); }
VCSI_OBJECT cddadr(VCSI_CONTEXT vc, VCSI_OBJECT x) { return cdr(vc,cdadr(vc,x)); }
static data_t *get_definition_value(const data_t *exp) { if(is_symbol(cadr(exp))) return caddr(exp); return make_lambda(cdadr(exp), cddr(exp)); }