From c26c723eea474f2316a1b3201e0dcf3da3af3ce3 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sun, 10 Aug 2025 21:37:13 +0100 Subject: [PATCH] Fetch proc before evaluating arguments --- lib/eval.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/eval.c b/lib/eval.c index eda6b02..886aca3 100644 --- a/lib/eval.c +++ b/lib/eval.c @@ -24,7 +24,9 @@ static void eval_list(am_t *am) am_cdr(am, UNEV, EXPR); am_car(am, EXPR, EXPR); - am_push(am, EXPR); + env_fetch(am); + am_push(am, VAL); + while (!AM_UNEV(am)->is_atom) { am_push(am, ARGL); am_car(am, EXPR, UNEV); @@ -37,9 +39,8 @@ static void eval_list(am_t *am) am_pop(am, ARGL); am_append(am, ARGL, VAL); } - am_pop(am, EXPR); - env_fetch(am); + am_pop(am, VAL); am_call(am, VAL); }