diff --git a/functional-tests/loops.scm b/functional-tests/loops.scm index f4d372b..adaf381 100644 --- a/functional-tests/loops.scm +++ b/functional-tests/loops.scm @@ -1,6 +1,6 @@ (library (loops) - (export upto while) + (export upto from-to while) (import (rnrs)) (define-syntax upto @@ -11,6 +11,14 @@ (begin body ...) (loop (+ 1 var))))))) + (define-syntax from-to + (syntax-rules () + ((_ (var f t step) b1 b2 ...) + (let loop ((var f)) + (unless (= var t) + b1 b2 ... + (loop (+ var step))))))) + (define-syntax while (syntax-rules () ((_ (var exp) body ...)