summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-11-11 06:40:24 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-11-11 06:40:24 -0800
commit008fccfa96b61189c0056ff5e3b708be1aa02f45 (patch)
tree16f9cbb9921d6ef18cea8705e2f9a61ef342325f /lib.h
parent82020af157ad104be3a62b57053d2420d17785f9 (diff)
downloadtxr-008fccfa96b61189c0056ff5e3b708be1aa02f45.tar.gz
txr-008fccfa96b61189c0056ff5e3b708be1aa02f45.tar.bz2
txr-008fccfa96b61189c0056ff5e3b708be1aa02f45.zip
Adding revappend and nreconc.
* eval.c (eval_init): Register revappend and nreconc intrinsics. * lib.c (list_collect_nreconc): New function. (revlist): New static function. (list_collect_revappend): New function. (revappend, nreconc): New functions. * lib.h (revappend, nreconc): Declared. (list_collect_nreconc, list_collect_revappend): Declared. * txr.1: Documented revappend and nreconc.
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib.h b/lib.h
index db7b6e95..20021f57 100644
--- a/lib.h
+++ b/lib.h
@@ -499,6 +499,8 @@ val nreverse(val in);
val reverse(val in);
val append2(val list1, val list2);
val nappend2(val list1, val list2);
+val revappend(val list1, val list2);
+val nreconc(val list1, val list2);
val appendv(struct args *lists);
val nconcv(struct args *lists);
val sub_list(val list, val from, val to);
@@ -999,6 +1001,8 @@ INLINE val default_arg_strict(val arg, val dfl)
loc list_collect(loc pptail, val obj);
loc list_collect_nconc(loc pptail, val obj);
loc list_collect_append(loc pptail, val obj);
+loc list_collect_nreconc(loc pptail, val obj);
+loc list_collect_revappend(loc pptail, val obj);
#define cons_bind(CAR, CDR, CONS) \
obj_t *c_o_n_s ## CAR ## CDR = CONS; \