From afec17f4310c5eaaa326aacab2d5bb18cafd315c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 2 Feb 2024 19:30:15 -0800 Subject: 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. --- lib.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib.c') diff --git a/lib.c b/lib.c index c5722241..e1ca5e9e 100644 --- a/lib.c +++ b/lib.c @@ -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); -- cgit v1.2.3