Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (require compatibility/mlist)
- (define wheel (mlist #f #f "Fizz" #f "Buzz" "Fizz" #f #f "Fizz" "Buzz" #f "Fizz" #f #f "FizzBuzz"))
- (define last
- (let loop ((mlst wheel))
- (if (null? (mcdr mlst))
- mlst
- (loop (mcdr mlst)))))
- (set-mcdr! last wheel)
- (define (wheel-fb n)
- (for/list ([fb? (in-mlist wheel)] [i (in-range 1 (add1 n))])
- (or fb? i)))
- (define (match-fb n)
- (for/list ([i (in-range 1 (add1 n))])
- (match (gcd i 15)
- [15 "fizzbuzz"]
- [3 "fizz"]
- [5 "buzz"]
- [_ i])))
- (define (match*-fb n)
- (for/list ([i (in-range 1 (add1 n))])
- (match* ((remainder i 3) (remainder i 5))
- [(0 0) "fizzbuzz"]
- [(0 _) "fizz"]
- [(_ 0) "buzz"]
- [(_ _) i])))
Advertisement
Add Comment
Please, Sign In to add comment