summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-12-10 20:06:38 -0800
committerKaz Kylheku <kaz@kylheku.com>2016-12-10 20:06:38 -0800
commit1ca65fef46ca68ca18e3db5a5eac316d5cf25799 (patch)
tree1e8f093a8dafc5467b2c88afe8fd3f633e3e8d64 /lib.c
parent22c3bc10879cc1ee73e8a057f772d4619a0e8d00 (diff)
downloadtxr-1ca65fef46ca68ca18e3db5a5eac316d5cf25799.tar.gz
txr-1ca65fef46ca68ca18e3db5a5eac316d5cf25799.tar.bz2
txr-1ca65fef46ca68ca18e3db5a5eac316d5cf25799.zip
New function: endp.
This improves compatibility with other Lisp dialects in a small way. * eval.c (eval_init): Register endp intrinsic. * lib.c (endp): New function. * lib.h (endp): Declared. * txr.1: Documented endp.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 1ca1790c..6576049c 100644
--- a/lib.c
+++ b/lib.c
@@ -2758,6 +2758,16 @@ val listp(val obj)
return if2(obj == nil || consp(obj), t);
}
+val endp(val obj)
+{
+ if (obj == nil)
+ return t;
+ if (consp(obj))
+ return nil;
+ uw_throwf(error_s, lit("endp: list improperly terminated by ~s"),
+ obj, nao);
+}
+
val proper_list_p(val obj)
{
while (consp(obj))