(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