summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-08-05 21:11:30 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-08-05 21:11:30 -0700
commit2844bb73b485450660d70de2de489590d0995d9e (patch)
treec13cce580f6a983db3db2086e141917b7b645cb6 /lib.c
parent905a08374e2901e97b18e58d970f95a25ec6fc10 (diff)
downloadtxr-2844bb73b485450660d70de2de489590d0995d9e.tar.gz
txr-2844bb73b485450660d70de2de489590d0995d9e.tar.bz2
txr-2844bb73b485450660d70de2de489590d0995d9e.zip
Add sum and prod convenience functions.
* eval.c (eval_init): prod and sum intrinsics registered. * lib.c (sum, prod): New functions. * lib.h (sum, prod): Declared. * txr.1: Documented.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index b8a165f5..bf7ce8ce 100644
--- a/lib.c
+++ b/lib.c
@@ -3277,6 +3277,18 @@ val numneqv(struct args *args)
return t;
}
+val sum(val seq)
+{
+ args_decl_list(args, ARGS_MIN, tolist(seq));
+ return plusv(args);
+}
+
+val prod(val seq)
+{
+ args_decl_list(args, ARGS_MIN, tolist(seq));
+ return mulv(args);
+}
+
val max2(val a, val b)
{
return if3(less(a, b), b, a);