diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-12-10 20:06:38 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-12-10 20:06:38 -0800 |
commit | 1ca65fef46ca68ca18e3db5a5eac316d5cf25799 (patch) | |
tree | 1e8f093a8dafc5467b2c88afe8fd3f633e3e8d64 /lib.c | |
parent | 22c3bc10879cc1ee73e8a057f772d4619a0e8d00 (diff) | |
download | txr-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.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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)) |