summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-09-03 23:29:24 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-09-03 23:29:24 -0700
commit1777ba3dc87c62cf18cd178f2055369979907dc8 (patch)
treea59a11cb6070442cc778618f1824badd55394f88 /lib.c
parentc98f779588624b9f5479c9740920e7760a1f7d98 (diff)
downloadtxr-1777ba3dc87c62cf18cd178f2055369979907dc8.tar.gz
txr-1777ba3dc87c62cf18cd178f2055369979907dc8.tar.bz2
txr-1777ba3dc87c62cf18cd178f2055369979907dc8.zip
New function: tailp.
* eval.c (eval_init): Register tailp intrinsic. * lib.c (tailp): New function. * lib.h (tailp): Declared. * txr.1: Documented.
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 374b038a..ebcd1670 100644
--- a/lib.c
+++ b/lib.c
@@ -1682,6 +1682,16 @@ val ldiff_old(val list1, val list2)
return make_like(out, list_orig);
}
+val tailp(val obj, val list)
+{
+ while (obj != list) {
+ if (atom(list))
+ return nil;
+ list = cdr(list);
+ }
+ return t;
+}
+
val memq(val obj, val list)
{
val list_orig = list;