diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-12 17:42:58 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-12 17:42:58 -0800 |
commit | 81f71cdbf8446246837665cc6f13e3da95a7db58 (patch) | |
tree | 3a0078cd114335bf413511089e2db17309878f70 /eval.c | |
parent | 1c31934c8294fec086bcfcd43479a3a399234ff7 (diff) | |
download | txr-81f71cdbf8446246837665cc6f13e3da95a7db58.tar.gz txr-81f71cdbf8446246837665cc6f13e3da95a7db58.tar.bz2 txr-81f71cdbf8446246837665cc6f13e3da95a7db58.zip |
* arith.c (expt): New function.
* eval.c (eval_init): Registering new intrinsic functions,
reduce-left, reduce-right and expt.
* lib.c (minusv): Return one instead of num(1).
(exptv, reduce_right): New functions.
* lib.h (expt, exptv, reduce_right): Declared.
* txr.1: Blank sections for new functions.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -1130,6 +1130,8 @@ void eval_init(void) reg_fun(intern(lit("mapcar"), user_package), func_n1v(mapcarv)); reg_fun(intern(lit("mappend"), user_package), func_n1v(mappendv)); reg_fun(apply_s, func_n2(apply_intrinsic)); + reg_fun(intern(lit("reduce-left"), user_package), func_n4(reduce_left)); + reg_fun(intern(lit("reduce-right"), user_package), func_n4(reduce_right)); reg_fun(intern(lit("second"), user_package), func_n1(second)); reg_fun(intern(lit("third"), user_package), func_n1(third)); @@ -1156,6 +1158,7 @@ void eval_init(void) reg_fun(intern(lit("*"), user_package), func_n0v(mulv)); reg_fun(intern(lit("trunc"), user_package), func_n2(trunc)); reg_fun(intern(lit("mod"), user_package), func_n2(mod)); + reg_fun(intern(lit("expt"), user_package), func_n0v(exptv)); reg_fun(intern(lit("fixnump"), user_package), func_n1(fixnump)); reg_fun(intern(lit("bignump"), user_package), func_n1(bignump)); |