diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-11-20 19:08:22 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-11-20 19:08:22 -0800 |
commit | e680fcaaa59d181af0356d7446ca1e5628598215 (patch) | |
tree | 1bae4a1e7631719fe405728a21c2ea9400eae04b | |
parent | dececfe937e68c45c3658cf9fa30bcde362d30ff (diff) | |
download | txr-e680fcaaa59d181af0356d7446ca1e5628598215.tar.gz txr-e680fcaaa59d181af0356d7446ca1e5628598215.tar.bz2 txr-e680fcaaa59d181af0356d7446ca1e5628598215.zip |
* lib.c (sel): Accept a function in place of the index list.
* txr.1: Documented.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib.c | 4 | ||||
-rw-r--r-- | txr.1 | 15 |
3 files changed, 23 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2014-11-20 Kaz Kylheku <kaz@kylheku.com> + + * lib.c (sel): Accept a function in place of the index list. + + * txr.1: Documented. + 2014-11-17 Kaz Kylheku <kaz@kylheku.com> * lib.c (split_str): If the separator string is empty, @@ -6209,7 +6209,9 @@ val sel(val seq_in, val where_in) { list_collect_decl (out, ptail); val seq = nullify(seq_in); - val where = nullify(where_in); + val where = if3(functionp(where_in), + funcall1(where_in, seq), + nullify(where_in)); switch (type(seq)) { case NIL: @@ -13312,7 +13312,7 @@ that element is added to a list. Finally, the list is returned. .coNP Function @ select .synb -.mets (select < object << index-list ) +.mets (select < object >> { index-list <> | function }) .syne .desc @@ -13327,6 +13327,19 @@ the indices in .metn index-list . If +.meta function +is given instead of +.metn index-list , +then +.meta function +is invoked with +.meta object +as its argument. The return value is then taken as +if it were the +.meta index-list +argument . + +If .meta object is a sequence, then .meta index-list |