summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-11-10 06:46:53 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-11-10 06:46:53 -0800
commite52438a4ff3e470863b3122cfd46a95c3a417516 (patch)
treee75088d5ac403a61c539a6916823cd8767b971db /eval.c
parent1b033ba4d434efc0c1d55c33305b686338eb5f50 (diff)
downloadtxr-e52438a4ff3e470863b3122cfd46a95c3a417516.tar.gz
txr-e52438a4ff3e470863b3122cfd46a95c3a417516.tar.bz2
txr-e52438a4ff3e470863b3122cfd46a95c3a417516.zip
New function: group-reduce.
* eval.c (eval_init): Register group-reduce intrinsic. * hash.c (group_reduce): New function. * hash.h (group_reduce): Declared. * txr.1: Documented group-reduce.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 215d562f..099c1327 100644
--- a/eval.c
+++ b/eval.c
@@ -4636,6 +4636,8 @@ void eval_init(void)
reg_fun(intern(lit("hash-subset"), user_package), func_n2(hash_subset));
reg_fun(intern(lit("hash-proper-subset"), user_package), func_n2(hash_proper_subset));
reg_fun(intern(lit("group-by"), user_package), func_n2v(group_by));
+ reg_fun(intern(lit("group-reduce"), user_package),
+ func_n6o(group_reduce, 4));
reg_fun(intern(lit("sort-group"), user_package), func_n3o(sort_group, 1));
reg_fun(intern(lit("unique"), user_package), func_n2ov(unique, 1));
reg_fun(intern(lit("uniq"), user_package), func_n1(uniq));