n++;
x = cdr (x);
}
- return make_number (n);
-}
-
-SCM
-last_pair (SCM x)
-{
- while (x != cell_nil && cdr (x) != cell_nil)
- x = cdr (x);
- return x;
+ return MAKE_NUMBER (n);
}
SCM
}
SCM
-list_ref (SCM x, SCM k)
-{
- assert (TYPE (x) == PAIR);
- assert (TYPE (k) == NUMBER);
- int n = VALUE (k);
- while (n-- && CDR (x) != cell_nil) x = CDR (x);
- return x != cell_nil ? car (x) : cell_undefined;
-}
-
-SCM
-vector_to_list (SCM v)
-{
- SCM x = cell_nil;
- for (int i = 0; i < LENGTH (v); i++) {
- SCM e = VECTOR (v)+i;
- if (TYPE (e) == REF) e = g_cells[e].ref;
- x = append2 (x, cons (e, cell_nil));
- }
- return x;
-}
-
-SCM
-integer_to_char (SCM x)
-{
- assert (TYPE (x) == NUMBER);
- return make_char (VALUE (x));
-}
-
-SCM
-char_to_integer (SCM x)
-{
- assert (TYPE (x) == CHAR);
- return make_number (VALUE (x));
-}
-
-SCM
-builtin_exit (SCM x)
+exit_ (SCM x) ///((name . "exit"))
{
assert (TYPE (x) == NUMBER);
exit (VALUE (x));