From b5a2e09763a64dbdfe0f08baddf7ea5505260bc6 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Mon, 13 Apr 2026 14:52:05 +0100 Subject: [PATCH] Things that are self-evaluating can self-evaluate. --- src/c/ops/eval.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/c/ops/eval.c b/src/c/ops/eval.c index 830cceb..3778a35 100644 --- a/src/c/ops/eval.c +++ b/src/c/ops/eval.c @@ -40,24 +40,24 @@ struct pso_pointer lisp_eval( struct pso_pointer frame_pointer, struct pso4 *frame = pointer_to_pso4( frame_pointer ); struct pso_pointer result = frame->payload.stack_frame.arg[0]; - // switch ( get_tag_value( result)) { + switch ( get_tag_value( result)) { // case CONSTV: // result = eval_cons( frame, frame_pointer, env); // break; // case KEYTV: - // case SYMBOLTV: - // result = eval_symbol( frame, frame_pointer, env); - // break; - // case LAMBDATV: - // result = eval_lambda( frame, frame_pointer, env); - // break; - // case NLAMBDATV: - // result = eval_nlambda( frame, frame_pointer, env); - // break; - // case SPECIALTV: - // result = eval_special( frame, frame_pointer, env); - // break; - // } + case SYMBOLTV: + result = eval_symbol( frame_pointer, env); + break; + case LAMBDATV: + result = eval_lambda( frame_pointer, env); + break; + case NLAMBDATV: + result = eval_nlambda( frame_pointer, env); + break; + case SPECIALTV: + result = eval_special( frame, frame_pointer, env); + break; + } if ( exceptionp( result ) ) { struct pso3 *x =