From 86f2140b80fbccde85e575c543b0326f77c4adaa Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Fri, 5 Jul 2024 19:25:33 -0700 Subject: [PATCH] Add COND --- src/toolsrc/drawl.pla | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/toolsrc/drawl.pla b/src/toolsrc/drawl.pla index 7e73259..7d443d2 100644 --- a/src/toolsrc/drawl.pla +++ b/src/toolsrc/drawl.pla @@ -457,10 +457,13 @@ def natv_cdr(expr) return NULL end -def natv_evcon(expr) - var conds - - conds = expr=>cdr +def natv_cond(expr) + while expr + if eval_expr(expr=>car=>car) == @pred_true + return eval_expr(expr=>car=>cdr=>car) + fin + expr = expr=>cdr + loop return NULL end @@ -585,7 +588,7 @@ def install_defaults#0 new_sym("CONS")=>natv = @natv_cons) new_sym("ATOM")=>natv = @natv_atom) new_sym("EQ")=>natv = @natv_eq) - new_sym("COND")=>natv = @natv_evcon) + new_sym("COND")=>natv = @natv_cond) new_sym("SET")=>natv = @natv_set) new_sym("SETQ")=>natv = @natv_setq) new_sym("NULL")=>natv = @natv_null)