summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--eval.c20
-rw-r--r--txr.vim5
3 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1febf32f..49db226a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2011-11-28 Kaz Kylheku <kaz@kylheku.com>
+ * eval.c (eval_init): More functions.
+
+ * txr.vim: More highlighting.
+
+2011-11-28 Kaz Kylheku <kaz@kylheku.com>
+
Adding streams functions to Lisp evaluator.
* eval.c (op_let): Bugfix: was not evaluating var init forms.
diff --git a/eval.c b/eval.c
index fed7f272..3c642aee 100644
--- a/eval.c
+++ b/eval.c
@@ -832,6 +832,26 @@ void eval_init(void)
reg_fun(intern(lit("mappend"), user_package), func_n1v(mappendv));
reg_fun(apply_s, func_n2(apply_intrinsic));
+ reg_fun(intern(lit("second"), user_package), func_n1(second));
+ reg_fun(intern(lit("third"), user_package), func_n1(third));
+ reg_fun(intern(lit("fourth"), user_package), func_n1(fourth));
+ reg_fun(intern(lit("fifth"), user_package), func_n1(fifth));
+ reg_fun(intern(lit("sixth"), user_package), func_n1(sixth));
+ reg_fun(intern(lit("copy-list"), user_package), func_n1(copy_list));
+ reg_fun(intern(lit("nreverse"), user_package), func_n1(nreverse));
+ reg_fun(intern(lit("reverse"), user_package), func_n1(reverse));
+ reg_fun(intern(lit("ldiff"), user_package), func_n2(ldiff));
+ reg_fun(intern(lit("flatten"), user_package), func_n1(flatten));
+ reg_fun(intern(lit("memq"), user_package), func_n2(memq));
+ reg_fun(intern(lit("memqual"), user_package), func_n2(memqual));
+ reg_fun(intern(lit("tree-find"), user_package), func_n3(tree_find));
+ reg_fun(intern(lit("some"), user_package), func_n3(some_satisfy));
+ reg_fun(intern(lit("all"), user_package), func_n3(all_satisfy));
+ reg_fun(intern(lit("none"), user_package), func_n3(none_satisfy));
+ reg_fun(intern(lit("eq"), user_package), func_n2(eq));
+ reg_fun(intern(lit("eql"), user_package), func_n2(eql));
+ reg_fun(intern(lit("equal"), user_package), func_n2(equal));
+
reg_fun(intern(lit("+"), user_package), func_n0v(plusv));
reg_fun(intern(lit("-"), user_package), func_n1v(minusv));
reg_fun(intern(lit("*"), user_package), func_n0v(mulv));
diff --git a/txr.vim b/txr.vim
index 3ef872f4..d1acd994 100644
--- a/txr.vim
+++ b/txr.vim
@@ -30,6 +30,11 @@ syn keyword txl_keyword contained let lambda call cond if and or defvar defun
syn keyword txl_keyword contained inc dec push pop gethash list append apply
syn keyword txl_keyword contained cons list atom null consp listp proper-listp
syn keyword txl_keyword contained length mapcar mappend apply
+
+syn keyword txl_keyword second third fourth fifth sixth copy-list nreversei
+syn keyword txl_keyword reverse ldiff flatten memq memqual
+syn keyword txl_keyword tree-find some all none eq eql equal
+
syn keyword txl_keyword contained + - * trunc mod numberp > < >= <= max min
syn keyword txl_keyword contained int-str