Skip to content

Instantly share code, notes, and snippets.

@ekozhura
Last active January 10, 2016 10:05
Show Gist options
  • Save ekozhura/3ea1ce475a6442406cae to your computer and use it in GitHub Desktop.
Save ekozhura/3ea1ce475a6442406cae to your computer and use it in GitHub Desktop.
module Codewars.Kata.FancyReplace where
import Data.Functor
import Data.List
getNumber :: Integer -> Either Integer String
getNumber n | n `mod` 15 == 0 = Right "BOTH"
| n `mod` 3 == 0 = Right "THREE"
| n `mod` 5 == 0 = Right "FIVE"
| otherwise = Left n
getNumberRange :: Integer -> Integer -> [Either Integer String]
getNumberRange first last = getNumber <$> (reverse $ getRange first last [])
where
getRange n m ns | n == m = (n:ns)
| n < m = getRange (n+1) m (n:ns)
| n > m = getRange (n-1) m (n:ns)
| otherwise = ns
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment