Skip to content

Instantly share code, notes, and snippets.

@sheepla
Last active June 28, 2024 11:17
Show Gist options
  • Save sheepla/b360afe58094ea07ef58d9321e48c271 to your computer and use it in GitHub Desktop.
Save sheepla/b360afe58094ea07ef58d9321e48c271 to your computer and use it in GitHub Desktop.
しかのこのこのここしたんたん in Haskell
data Pattern = Shika | Noko | Koshi | Tan deriving (Show, Eq)
toString :: Pattern -> String
toString Shika = "しか"
toString Noko = "のこ"
toString Koshi = "こし"
toString Tan = "たん"
generate :: [(Pattern, Int)] -> [String]
generate = concatMap (\(pattern, count) -> replicate count (toString pattern))
main :: IO ()
main = do
let patterns = [(Shika, 1), (Noko, 3), (Koshi, 1), (Tan, 2)]
let strings = generate patterns
putStr (concat strings)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment