aboutsummaryrefslogtreecommitdiff
path: root/eval.cpp
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-10 23:42:42 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-10 23:42:42 +0800
commit2729f71c327f8ef4ddbb620dc486e7334ba40119 (patch)
tree660ea8b5fe582cb2895cf66f1a10a536df33afbd /eval.cpp
parent80e885a9847c9bce1be8cccafc85ea39cbc120e2 (diff)
more built-ins
Diffstat (limited to 'eval.cpp')
-rw-r--r--eval.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/eval.cpp b/eval.cpp
index 369a150..6e56eb4 100644
--- a/eval.cpp
+++ b/eval.cpp
@@ -29,7 +29,9 @@ void Evaluator::add_builtin_routines() {
ADD_BUILTIN_PROC("/", num_div);
ADD_BUILTIN_PROC("<", num_lt);
+ ADD_BUILTIN_PROC("<=", num_le);
ADD_BUILTIN_PROC(">", num_gt);
+ ADD_BUILTIN_PROC(">=", num_ge);
ADD_BUILTIN_PROC("=", num_eq);
ADD_BUILTIN_PROC("exact?", num_is_exact);
@@ -39,6 +41,13 @@ void Evaluator::add_builtin_routines() {
ADD_BUILTIN_PROC("real?", is_real);
ADD_BUILTIN_PROC("rational?", is_rational);
ADD_BUILTIN_PROC("integer?", is_integer);
+ ADD_BUILTIN_PROC("abs", num_abs);
+ ADD_BUILTIN_PROC("modulo", num_mod);
+ ADD_BUILTIN_PROC("remainder", num_rem);
+ ADD_BUILTIN_PROC("quotient", num_quo);
+ ADD_BUILTIN_PROC("gcd", num_gcd);
+ ADD_BUILTIN_PROC("lcm", num_lcm);
+
ADD_BUILTIN_PROC("not", bool_not);
ADD_BUILTIN_PROC("boolean?", is_boolean);
@@ -62,6 +71,8 @@ void Evaluator::add_builtin_routines() {
ADD_BUILTIN_PROC("equal?", is_equal);
ADD_BUILTIN_PROC("display", display);
+ ADD_BUILTIN_PROC("string?", is_string);
+ ADD_BUILTIN_PROC("symbol?", is_symbol);
}
Evaluator::Evaluator() {