-
-
- ; utils
-
-(define (range s n)
- (if (= 0 n) '()
- (append (range s (- n 1))
- (list (+ s (- n 1))))))
-
-(define (flat-map f . xs) (fold-left append '() (apply map (cons f xs))))
-(define (repeat x n) (if (<= n 0) '()
- (cons x (repeat x (- n 1)))))
-
-
-(define-syntax push!
- (syntax-rules ()
- ((_ s x) (set! s (cons x s)))))
-
-(define-syntax pop!
- (syntax-rules ()
- ((_ s) (let ([x (car s)])
- (set! s (cdr s))
- x))))