void su_seq_reverse(su_state *s, int idx) { su_pushnil(s); su_copy(s, idx - 1); while (su_type(s, -1) == SU_SEQ) { su_first(s, -1); su_copy(s, -3); su_cons(s); su_swap(s, -3, -1); su_pop(s, 1); su_rest(s, -1); su_swap(s, -2, -1); su_pop(s, 1); } su_pop(s, 1); }
static int cons(su_state *s, int narg) { su_check_arguments(s, 2, SU_NIL, SU_NIL); su_cons(s, -2); return 1; }