20 lines
334 B
Haskell
20 lines
334 B
Haskell
|
|
{-# LANGUAGE LambdaCase #-}
|
||
|
|
import Data.Char
|
||
|
|
|
||
|
|
letters = \case
|
||
|
|
2 -> "ABC"
|
||
|
|
3 -> "DEF"
|
||
|
|
4 -> "GHI"
|
||
|
|
5 -> "JKL"
|
||
|
|
6 -> "MNO"
|
||
|
|
7 -> "PQRS"
|
||
|
|
8 -> "TUV"
|
||
|
|
9 -> "WXYZ"
|
||
|
|
_ -> []
|
||
|
|
|
||
|
|
main :: IO ()
|
||
|
|
main = interact $ unlines . possibleWords . digitsOf
|
||
|
|
where
|
||
|
|
possibleWords = mapM letters
|
||
|
|
digitsOf = map digitToInt . filter isDigit
|