Guest User

Untitled

a guest
Jan 1st, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 0.75 KB | None | 0 0
  1. #lang racket
  2.  
  3. (require compatibility/mlist)
  4.  
  5. (define wheel (mlist #f #f "Fizz" #f "Buzz" "Fizz" #f #f "Fizz" "Buzz" #f "Fizz" #f #f "FizzBuzz"))
  6. (define last
  7.   (let loop ((mlst wheel))
  8.     (if (null? (mcdr mlst))
  9.         mlst
  10.         (loop (mcdr mlst)))))
  11. (set-mcdr! last wheel)
  12.  
  13.  
  14.  
  15. (define (wheel-fb n)
  16.   (for/list ([fb? (in-mlist wheel)] [i (in-range 1 (add1 n))])
  17.     (or fb? i)))
  18.  
  19.  
  20. (define (match-fb n)
  21.   (for/list ([i (in-range 1 (add1 n))])
  22.    (match (gcd i 15)
  23.      [15 "fizzbuzz"]
  24.      [3 "fizz"]
  25.      [5 "buzz"]
  26.      [_ i])))
  27.  
  28. (define (match*-fb n)
  29.   (for/list ([i (in-range 1 (add1 n))])
  30.      (match* ((remainder i 3) (remainder i 5))
  31.        [(0 0) "fizzbuzz"]
  32.        [(0 _) "fizz"]
  33.        [(_ 0) "buzz"]
  34.        [(_ _) i])))
Advertisement
Add Comment
Please, Sign In to add comment