-(define repeat (macro (count rest)
- `(let ((__count__ ,count))
- (while (<= 0 (set! __count__ (- __count__ 1))) ,@rest))))
+
+(define repeat
+ (macro (count rest)
+ (define counter '__count__)
+ (cond ((pair? count)
+ (set! counter (car count))
+ (set! count (cadr count))
+ )
+ )
+ `(let ((,counter 0)
+ (__max__ ,count)
+ )
+ (while (< ,counter __max__)
+ ,@rest
+ (set! ,counter (+ ,counter 1))
+ )
+ )
+ )
+ )