Skip to content

Instantly share code, notes, and snippets.

@ryantm
Last active August 29, 2015 14:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryantm/b1dd9218e2a391e1e2db to your computer and use it in GitHub Desktop.
Save ryantm/b1dd9218e2a391e1e2db to your computer and use it in GitHub Desktop.
Haskell Fizzbuzz
newtype FizzBuzz = FizzBuzz Int
instance Show FizzBuzz where
show (FizzBuzz i)
| iDivisibleBy 15 = "Fizz Buzz"
| iDivisibleBy 5 = "Buzz"
| iDivisibleBy 3 = "Fizz"
| otherwise = show i
where
iDivisibleBy n = i `rem` n == 0
main :: IO ()
main = print $ take 15 (map FizzBuzz [1..])
fizzBuzz :: Integer -> String
fizzBuzz i
| iDivisibleBy 15 = "Fizz Buzz"
| iDivisibleBy 5 = "Buzz"
| iDivisibleBy 3 = "Fizz"
| otherwise = show i
where
iDivisibleBy n = i `rem` n == 0
main :: IO ()
main = print $ take 15 (map fizzBuzz [1..])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment