From 70203c5cdab161f2d12756ff382035efbbaef421 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 27 Mar 2016 09:41:12 -0700 Subject: Adding rightmost item search functions. * eval.c (eval_init): Registered intrinsics rmemq, rmemql, rmemqual, rmember, rmember-if, rposqual, rposql, rposq, rpos, rpos-if, rfind, rfind-if and rsearch. * lib.c (rmemq, rmemql, rmemqual, rmember, rmember-if, rposqual, rposql, rposq, rpos, rpos-if, rfind, rfind-if, rsearch): New functions. (rsearch_list): New static function. (search): Omit unreachable return statement. * lib.h (rmemq, rmemql, rmemqual, rmember, rmember-if, rposqual, rposql, rposq, rpos, rpos-if, rfind, rfind-if, rsearch): Declared. * txr.1: Documented. --- lib.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'lib.h') diff --git a/lib.h b/lib.h index 07506a2b..92e08352 100644 --- a/lib.h +++ b/lib.h @@ -532,10 +532,15 @@ val split(val seq, val indices); val partition_star(val seq, val indices); val split_star(val seq, val indices); val memq(val obj, val list); +val rmemq(val obj, val list); val memql(val obj, val list); +val rmemql(val obj, val list); val memqual(val obj, val list); +val rmemqual(val obj, val list); val member(val item, val list, val testfun, val keyfun); +val rmember(val item, val list, val testfun, val keyfun); val member_if(val pred, val list, val key); +val rmember_if(val pred, val list, val key); val remq(val obj, val list); val remql(val obj, val list); val remqual(val obj, val list); @@ -905,14 +910,21 @@ val sort_group(val seq, val keyfun, val lessfun); val unique(val seq, val keyfun, struct args *hashv_args); val uniq(val seq); val find(val list, val key, val testfun, val keyfun); +val rfind(val list, val key, val testfun, val keyfun); val find_if(val pred, val list, val key); +val rfind_if(val pred, val list, val key); val find_max(val seq, val testfun, val keyfun); val find_min(val seq, val testfun, val keyfun); val posqual(val obj, val list); +val rposqual(val obj, val list); val posql(val obj, val list); +val rposql(val obj, val list); val posq(val obj, val list); +val rposq(val obj, val list); val pos(val list, val key, val testfun, val keyfun); +val rpos(val list, val key, val testfun, val keyfun); val pos_if(val pred, val list, val key); +val rpos_if(val pred, val list, val key); val pos_max(val seq, val testfun, val keyfun); val pos_min(val seq, val testfun, val keyfun); val take(val count, val seq); @@ -935,6 +947,7 @@ val butlast(val seq); val replace(val seq, val items, val from, val to); val update(val seq, val fun); val search(val seq, val key, val from, val to); +val rsearch(val seq, val key, val from, val to); val where(val func, val seq); val sel(val seq, val where); val rcons(val from, val to); -- cgit v1.2.3