summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-12 20:25:27 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-14 15:53:43 -0800
commit260968beacb1a2e1c6bdd652f75fe087f907ce0f (patch)
tree6f9da93f5136fc15dc0ad4c8fd1998edb8888081 /eval.c
parented290d6d0df5f4c694459f853983ab79929ea786 (diff)
downloadtxr-260968beacb1a2e1c6bdd652f75fe087f907ce0f.tar.gz
txr-260968beacb1a2e1c6bdd652f75fe087f907ce0f.tar.bz2
txr-260968beacb1a2e1c6bdd652f75fe087f907ce0f.zip
* eval.c (eval_init): Register hash_guni and hash_gisec as intrinsics.
* hash.c (hash_guni, hash_gisec): New functions. (hash_isec): Bugfix: since gethash was naively used, keys in hash2 associated with the value nil were erroneously omitted from the intersection. * hash.h (hash_guni, hash_gisec): Declared. * txr.1: Documented new functions.
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 5f88d61c..7a6fa19e 100644
--- a/eval.c
+++ b/eval.c
@@ -2509,8 +2509,10 @@ void eval_init(void)
reg_fun(intern(lit("hash-pairs"), user_package), func_n1(hash_pairs));
reg_fun(intern(lit("hash-alist"), user_package), func_n1(hash_alist));
reg_fun(intern(lit("hash-uni"), user_package), func_n2(hash_uni));
+ reg_fun(intern(lit("hash-guni"), user_package), func_n2(hash_guni));
reg_fun(intern(lit("hash-diff"), user_package), func_n2(hash_diff));
reg_fun(intern(lit("hash-isec"), user_package), func_n2(hash_isec));
+ reg_fun(intern(lit("hash-gisec"), user_package), func_n2(hash_gisec));
reg_fun(intern(lit("group-by"), user_package), func_n2v(group_by));
reg_fun(intern(lit("hash-update"), user_package), func_n2(hash_update));