static void siag_print(LISP p) { if (FLONUMP(p)) { siag_type = EXPRESSION; siag_result.number = FLONM(p); } else if (TYPEP(p, tc_string)) { siag_type = STRING; siag_result.text = p->storage_as.string.data; } else { siag_type = ERROR; siag_result.number = 0, errorflag = 1; } }
VCSI_OBJECT randobj(VCSI_CONTEXT vc, VCSI_OBJECT args, int length) { VCSI_OBJECT tmp; int r_seed; if(length <= 0) return error(vc,"random requires at least one argument",args); if(length == 1) { tmp = CAR(args); if(TYPEP(tmp,LNGNUM)) { r_seed = (int)((float)LNGN(tmp)*rand()/(RAND_MAX)); return make_long(vc,r_seed); } else return tmp; } else { r_seed = (int)((float)length*rand()/(RAND_MAX)); return vcsi_list_ref_i(vc,args,r_seed); } }
VCSI_OBJECT cdr(VCSI_CONTEXT vc, VCSI_OBJECT x) { if(TYPEP(x,CONS)) return CDR(x); return error(vc,"non-pair to cdr", x); }