From b43819ef8d2f7aca08c714392e9578f13e619d82 Mon Sep 17 00:00:00 2001 From: Felix Perktold Date: Mon, 22 Dec 2025 15:35:40 +0100 Subject: fix evaluation of lists (recursively eval all elems of list) --- lisp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp.c b/lisp.c index be71a30..dca63ad 100644 --- a/lisp.c +++ b/lisp.c @@ -208,6 +208,8 @@ value *eval(env *e, value *v) { } if (v->type == VT_PAIR) { + //printf("pair found: "); + //println_value(v); return eval_pair(e, v); } @@ -283,8 +285,9 @@ value *eval_pair(env *e, value *v) { } return apply(head_eval, reverse(args_eval)); } - - return v; + + // else evaluate the list recursively + return cons(eval(e, car(v)), eval(e, cdr(v))); } value *apply(value *lval, value *args) { -- cgit v1.2.3