scm *
eval_env (scm *e, scm *a)
{
+ if (BUILTIN_P (e) != &scm_f) return e;
if (internal_symbol_p (e) == &scm_t) return e;
e = expand_macro_env (e, a);
scm *primitives = 0;
scm *
-internal_lookup_primitive (char const *s)
+lookup_primitive_ (scm *e)
{
scm *x = primitives;
- while (x && strcmp (s, x->car->name)) x = x->cdr;
+ while (x && strcmp (e->name, x->car->name)) x = x->cdr;
if (x) x = x->car;
return x;
}
return make_number (atoi (s));
scm *x;
+ scm p = {SYMBOL};
+ p.name = s;
#if STATIC_PRIMITIVES
- x = internal_lookup_primitive (s);
+ x = lookup_primitive_ (&p);
if (x) return x;
#endif // STATIC_PRIMITIVES
x = internal_lookup_symbol (s);