From 014c61e860fce07cceee60efecd949a17e53f2ae Mon Sep 17 00:00:00 2001 From: Kaz Kylheku <kaz@kylheku.com> Date: Wed, 13 Feb 2019 06:54:42 -0800 Subject: optimizing diff, isec and uni for non-lists. Also, these functions now support hashes. * eval.c (eval_init): Register only the deprecated set-diff to the set_diff function. The diff intrinsic is now going to the new function named diff. * lib.c (diff): New function. (isec, uni): Rewritten to use seq_iter_t. * lib.h (diff): Declared. * txr.1: Documentation updated. --- eval.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index f9150b8c..d1013871 100644 --- a/eval.c +++ b/eval.c @@ -6014,7 +6014,6 @@ void eval_init(void) val not_null_f = func_n1(not_null); val me_each_f = func_n2(me_each); val me_for_f = func_n2(me_for); - val diff_f = func_n4o(set_diff, 2); val length_f = func_n1(length); protect(&top_vb, &top_fb, &top_mb, &top_smb, &special, &builtin, &dyn_env, @@ -6747,8 +6746,8 @@ void eval_init(void) reg_fun(intern(lit("find-max"), user_package), func_n3o(find_max, 1)); reg_fun(intern(lit("find-min"), user_package), func_n3o(find_min, 1)); reg_fun(intern(lit("multi-sort"), user_package), func_n3o(multi_sort, 2)); - reg_fun(intern(lit("set-diff"), user_package), diff_f); - reg_fun(intern(lit("diff"), user_package), diff_f); + reg_fun(intern(lit("set-diff"), user_package), func_n4o(set_diff, 2)); + reg_fun(intern(lit("diff"), user_package), func_n4o(diff, 2)); reg_fun(intern(lit("isec"), user_package), func_n4o(isec, 2)); reg_fun(intern(lit("uni"), user_package), func_n4o(uni, 2)); -- cgit v1.2.3