PasteRack.org
Paste # 82185
2017-06-23 03:29:11

Fork as a new paste.

Paste viewed 47 times.


Embed:

#lang curly-fn racket

(require data/collection
         math/number-theory)

(define fizzbuzz1
  (match-lambda
    [(? #{divides? 15}) "FizzBuzz"]
    [(? #{divides?  5}) "Buzz"]
    [(? #{divides?  3}) "Fizz"]
    [n                  (~a n)]))

(define fizzbuzz (map fizzbuzz1 (naturals 1)))

(module+ test
  (require rackunit)

  (check-equal? (sequence->list (take 5 fizzbuzz))
                '("1" "2" "Fizz" "4" "Buzz")))

(module+ main
  (for-each displayln fizzbuzz))