diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-07 10:59:19 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-07 10:59:19 -0800 |
commit | 79781ded91b29fbdc406d460e466c5ffb06a1454 (patch) | |
tree | 2f44c3b8091a1fe8d397af2e577448ceb89031e7 /eval.c | |
parent | bf486523ab87ce43d5cc880fd0e2dd5f48cd819b (diff) | |
download | txr-79781ded91b29fbdc406d460e466c5ffb06a1454.tar.gz txr-79781ded91b29fbdc406d460e466c5ffb06a1454.tar.bz2 txr-79781ded91b29fbdc406d460e466c5ffb06a1454.zip |
* eval.c (lookup_var, lookup_fun): Reversing assoc arguments.
(eval_init): New intrinsics.
* hash.c (struct_hash): assoc_fun parameters reversed.
(gethash, gethash_f, gethash_n): Likewise.
* lib.c (assoc, assq): Reversing parameters.
(find_package, acons_new, acons_new_l, aconsq_new): Reversing
arguments to assoc adn assq.
* lib.h (assoc, assq): Declarations updated.
* match.c (dest_set, dest_bind, h_var, h_coll, h_parallel, h_fun,
subst_vars, do_txeval, v_next, v_parallel, v_gather, v_collect,
v_flatten, v_cat, v_output, v_filter, f_fun, match_funcall):
Reversing arguments to assoc.
* unwind.c (uw_get_func, uw_exception_subtype_p, uw_register_subtype):
Reversing arguments to assoc.
* txr.1: Blank sections created for new functions.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -109,7 +109,7 @@ val lookup_var(val env, val sym) type_check(env, ENV); { - val binding = assoc(env->e.vbindings, sym); + val binding = assoc(sym, env->e.vbindings); if (binding) return binding; return lookup_var(env->e.up_env, sym); @@ -125,7 +125,7 @@ val lookup_fun(val env, val sym) type_check(env, ENV); { - val binding = assoc(env->e.fbindings, sym); + val binding = assoc(sym, env->e.fbindings); if (binding) return binding; return lookup_fun(env->e.up_env, sym); @@ -1215,6 +1215,21 @@ void eval_init(void) reg_fun(intern(lit("length-vec"), user_package), func_n1(length_vec)); reg_fun(intern(lit("size-vec"), user_package), func_n1(size_vec)); reg_fun(intern(lit("vector-list"), user_package), func_n1(vector_list)); + + reg_fun(intern(lit("assoc"), user_package), func_n2(assoc)); + reg_fun(intern(lit("assq"), user_package), func_n2(assq)); + reg_fun(intern(lit("acons"), user_package), func_n3(acons)); + reg_fun(intern(lit("acons-new"), user_package), func_n3(acons_new)); + reg_fun(intern(lit("aconsq-new"), user_package), func_n3(aconsq_new)); + reg_fun(intern(lit("alist-remove"), user_package), func_n1v(alist_remove)); + reg_fun(intern(lit("alist-nremove"), user_package), func_n1v(alist_nremove)); + reg_fun(intern(lit("copy-cons"), user_package), func_n1(copy_cons)); + reg_fun(intern(lit("copy-alist"), user_package), func_n1(copy_alist)); + reg_fun(intern(lit("merge"), user_package), func_n4(merge)); + reg_fun(intern(lit("sort"), user_package), func_n3(sort)); + reg_fun(intern(lit("find"), user_package), func_n4(find)); + reg_fun(intern(lit("set-diff"), user_package), func_n4(set_diff)); + reg_fun(intern(lit("length"), user_package), func_n1(length)); eval_error_s = intern(lit("eval-error"), user_package); |