From 7e36a3f2a6501a0bc6d24836610746f59427b496 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 23 Sep 2021 06:21:30 -0700 Subject: New variants of each operator for sum and product. * lisplib.c (arith_each_instantiate, arith_each_set_entries): New functions. (each_prod_set_entries): Add sum-each-prod, sum-each-prod*, mul-each-prod and mul-each-prod* as autoload triggers for each-prod.tl, where those macros are now defined. (lisplib_init): Register autoloading of arith-each.tl via the two new functions. * stdlib/arith-each.tl: New file. * stdlib/each-prod.tl (sys:expand-each-prod*): Handle sum-each-prod* and mul-each-prod* in the same way, by mapping to their parallel binding counterparts. (sys:expand-arith-each-prod): New function. (sym-each-prod, mul-each-prod, sum-each-prod*, mul-each-prod*): New macros. * tests/016/arith.tl: New tests. * txr.1: Documented. * stdlib/doc-syms.tl: Updated. --- stdlib/doc-syms.tl | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'stdlib/doc-syms.tl') diff --git a/stdlib/doc-syms.tl b/stdlib/doc-syms.tl index 60a81501..c9fcf582 100644 --- a/stdlib/doc-syms.tl +++ b/stdlib/doc-syms.tl @@ -1283,6 +1283,10 @@ ("ms-invalidate" "N-01F782B2") ("ms-sync" "N-01F782B2") ("msync" "N-02805A83") + ("mul-each" "N-01C5F219") + ("mul-each*" "N-01C5F219") + ("mul-each-prod" "N-003CC14A") + ("mul-each-prod*" "N-003CC14A") ("multi" "N-034946BA") ("multi-sort" "N-0132852F") ("munmap" "N-00E1BF52") @@ -1878,6 +1882,10 @@ ("subtypep" "N-00699D3B") ("succ" "N-038E636C") ("sum" "N-0163FFE2") + ("sum-each" "N-01C5F219") + ("sum-each*" "N-01C5F219") + ("sum-each-prod" "N-003CC14A") + ("sum-each-prod*" "N-003CC14A") ("super" "N-03D8EEEE") ("super-method" "N-02AC8367") ("suspend" "N-02E7852D") -- cgit v1.2.3