summaryrefslogtreecommitdiff
path: root/iterative-add/iterative-add.scm
diff options
context:
space:
mode:
Diffstat (limited to 'iterative-add/iterative-add.scm')
-rw-r--r--iterative-add/iterative-add.scm15
1 files changed, 15 insertions, 0 deletions
diff --git a/iterative-add/iterative-add.scm b/iterative-add/iterative-add.scm
new file mode 100644
index 0000000..45c6cf9
--- /dev/null
+++ b/iterative-add/iterative-add.scm
@@ -0,0 +1,15 @@
+(define-module (iterative-add)
+ #:export (iterative-add-generator))
+
+(define iterative-add
+ (let ((prev-num 0))
+ (lambda (num)
+ (let ((result
+ (+ num prev-num)))
+ (set! prev-num num)
+ result))))
+
+(define (iterative-add-generator num)
+ "Adds the previously received
+number to the current one."
+ (iterative-add num))