[Haskell-beginners] Error Message when trying to solve alphametic(SEND + MORE = MONEY)
Sok Ha Chang
shaegis at gmail.com
Sun Jan 26 12:16:15 UTC 2014
Hi.
I’m new to Haskell.
Use Haskell Platform on MacBook Air.
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
I’m try to solve alphametic.
SEND + MORE = MONEY
Here is code…
----------------------------------------------------------------------------------------------------------
import Data.List
decryp :: [Int] -> String -> String
decryp (s:e:n:d:o:r:y:[]) a =
if send + more == money then expr:a else a
where
send = s * 1000 + e * 100 + n * 10 + d
more = 1000 + o * 100 + r * 10 + e
money = 10000 + o * 1000 + n * 100 + e * 10 + y
expr = show send ++ "+" ++ show more ++ "=" show money
decrypSolver :: [String]
decrypSolver =
foldr decryp [] (permutations 7 [0, 2, 3, 4, 5, 6, 7, 8, 9])
----------------------------------------------------------------------------------------------------------
Error Messages is
./decrypSolver.hs: line 10, column 60:
Couldn't match expected type `(a0 -> String) -> Int -> [Char]'
with actual type `[Char]'
The function `"="' is applied to two arguments,
but its type `[Char]' has none
In the second argument of `(++)', namely `"=" show money'
In the second argument of `(++)', namely
`show more ++ "=" show money’
----------------------------------------------------------------------------------------------------------
How can I fix this?
Thank you.
Sincerely, S. Chang
More information about the Beginners
mailing list