(Arne Babenhauserheide)
2015-09-29: added fast-sum added fast-sum
diff --git a/tests/fast-sum.scm b/tests/fast-sum.scm
new file mode 100644
--- /dev/null
+++ b/tests/fast-sum.scm
@@ -0,0 +1,8 @@
+(define-syntax fast-sum
+ (syntax-rules (iota)
+ ((fast-sum (iota count start))
+ (+ 1
+ (apply - (map (lambda (x) (/ (* x (+ x 1)) 2))
+ (list (+ count (- start 1)) start)))))
+ ((fast-sum e)
+ (apply + e))))
diff --git a/tests/fast-sum.w b/tests/fast-sum.w
new file mode 100644
--- /dev/null
+++ b/tests/fast-sum.w
@@ -0,0 +1,9 @@
+define-syntax fast-sum
+ syntax-rules : iota
+ : fast-sum : iota count start
+ + 1
+ apply -
+ map : lambda (x) : / {x * {x + 1} } 2
+ list {count + {start - 1}} start
+ : fast-sum e
+ apply + e