summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-06-17 06:59:46 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-06-17 06:59:46 -0700
commit95f05cafb8da2dc1a20a41b165c2e03c24d04099 (patch)
tree61ff68622bd17632bbf731ff9ffb73bc136756fb /eval.c
parent5b140a070a99937da7c0b1fac9c23b7a281be82f (diff)
downloadtxr-95f05cafb8da2dc1a20a41b165c2e03c24d04099.tar.gz
txr-95f05cafb8da2dc1a20a41b165c2e03c24d04099.tar.bz2
txr-95f05cafb8da2dc1a20a41b165c2e03c24d04099.zip
* eval.c (not_null): New static function.
(eval_init): Use null_f in existing registration of null and not. Add registration for not_null as "true", and for null_f as "false". * txr.1: Documented true and false.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index d9acfda4..7339281e 100644
--- a/eval.c
+++ b/eval.c
@@ -3057,6 +3057,11 @@ static val and_fun(val vals)
return item;
}
+static val not_null(val obj)
+{
+ return if3(nilp(obj), nil, t);
+}
+
static val prinl(val obj, val stream)
{
val ret = obj_print(obj, stream);
@@ -3224,8 +3229,10 @@ void eval_init(void)
reg_fun(intern(lit("typeof"), user_package), func_n1(typeof));
reg_fun(intern(lit("atom"), user_package), func_n1(atom));
- reg_fun(intern(lit("null"), user_package), func_n1(null));
- reg_fun(not_s, func_n1(null));
+ reg_fun(intern(lit("null"), user_package), null_f);
+ reg_fun(intern(lit("false"), user_package), null_f);
+ reg_fun(intern(lit("true"), user_package), func_n1(not_null));
+ reg_fun(not_s, null_f);
reg_fun(intern(lit("consp"), user_package), func_n1(consp));
reg_fun(intern(lit("listp"), user_package), func_n1(listp));
reg_fun(intern(lit("proper-listp"), user_package), func_n1(proper_listp));