summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-02-22 00:42:06 -0800
committerKaz Kylheku <kaz@kylheku.com>2012-02-22 00:42:06 -0800
commit2868a7009f04a40d52c27503a0a4feb50da5c877 (patch)
tree44e31e8cb33e6c1f1cd4bd6c7f6e77c3bc6521ac /eval.c
parent7338a92f135d2a5cb8db59c08885b63ee4991d9f (diff)
downloadtxr-2868a7009f04a40d52c27503a0a4feb50da5c877.tar.gz
txr-2868a7009f04a40d52c27503a0a4feb50da5c877.tar.bz2
txr-2868a7009f04a40d52c27503a0a4feb50da5c877.zip
* eval.c (eval_init): Intrinsic bindings for sub, ref, refset
and replace. * lib.c (do_sort): Static function renamed to sort_list. (swap, quicksort, sort_vec): New static functions. (sort): Made generic over lists, vectors and strings. (refset): New function. * lib.h (sort): Declaration updated (parameter name change). (refset): Declared. * txr.1: Mention refset. * txr.vim: Updated with refset.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index a733ba45..30598bb6 100644
--- a/eval.c
+++ b/eval.c
@@ -2235,6 +2235,11 @@ void eval_init(void)
reg_fun(intern(lit("length"), user_package), func_n1(length));
+ reg_fun(intern(lit("sub"), user_package), func_n3o(sub, 1));
+ reg_fun(intern(lit("ref"), user_package), func_n2(ref));
+ reg_fun(intern(lit("refset"), user_package), func_n3(refset));
+ reg_fun(intern(lit("replace"), user_package), func_n4o(replace, 2));
+
reg_fun(intern(lit("symbol-function"), user_package), func_n1(symbol_function));
reg_fun(intern(lit("func-get-form"), user_package), func_n1(func_get_form));
reg_fun(intern(lit("func-get-env"), user_package), func_n1(func_get_env));