diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2024-02-02 19:30:15 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2024-02-02 19:30:15 -0800 |
commit | afec17f4310c5eaaa326aacab2d5bb18cafd315c (patch) | |
tree | 867cf4c8afd1d20e6796d66f20a1b70ce2faae6e /lib.c | |
parent | fb8b7312de0fa42fe9b544aca54d1ee05518bf40 (diff) | |
download | txr-afec17f4310c5eaaa326aacab2d5bb18cafd315c.tar.gz txr-afec17f4310c5eaaa326aacab2d5bb18cafd315c.tar.bz2 txr-afec17f4310c5eaaa326aacab2d5bb18cafd315c.zip |
New function: hist-sort-by.
* eval.c (eval_init): Register hist-sort-by intrinsic.
* lib.c (hist_sort_by): New function.
(hist_sort): Wrapper for hist_sort_by now.
* lib.h (hist_sort_by): Declared.
* tests/012/sort.tl: Tests.
* txr.1: Documented.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -11600,14 +11600,19 @@ static val hist_succ(val left, val right) return succ(left); } -val hist_sort(val seq, varg hashv_args) +val hist_sort_by(val fun, val seq, varg hashv_args) { val hash = group_reduce(hashv(hashv_args), - identity_f, hist_succ_f, + fun, hist_succ_f, seq, zero, nil); return nsort(hash_alist(hash), gt_f, cdr_f); } +val hist_sort(val seq, varg hashv_args) +{ + return hist_sort_by(identity_f, seq, hashv_args); +} + val nrot(val seq, val n_in) { val len = length(seq); |