No title

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- wordnumber.hs

module WordNumber where

import Data.List (intersperse)

digitToWord :: Int -> String
digitToWord 1 = "one"
digitToWord 2 = "two"
digitToWord 3 = "three"
digitToWord 4 = "four"
digitToWord 5 = "five"
digitToWord 6 = "six"
digitToWord 7 = "seven"
digitToWord 8 = "eight"
digitToWord 9 = "nine"
digitToWord 0 = "naught"
digitToWord _ = "What?"

digits :: Int -> [Int]
digits n = go n []
  where
    go 0 acc = acc
    go x acc = go (div x 10) (mod x 10 : acc)

wordNumber :: Int -> String
wordNumber n = concat ( intersperse "-" (map digitToWord s) )
  where s = digits n
27:16: Warning: Use intercalate
Found:
concat (intersperse "-" (map digitToWord s))
Why not:
intercalate "-" (map digitToWord s)