[Haskell-beginners] Error Message when trying to solve alphametic(SEND + MORE = MONEY)

Matthew Moppett matthewmoppett at gmail.com
Mon Jan 27 16:08:45 UTC 2014


No worries, Sok Ha :-)


On Sun, Jan 26, 2014 at 8:29 PM, Sok Ha Chang <shaegis at gmail.com> wrote:

> Thank you to kind help.
> From now on, I will follow your way.
> Have a nice day.
> Thanks, again.
>
> Sincerely, S. Chang
>
> 2014. 1. 26. 오후 9:31 Matthew Moppett <matthewmoppett at gmail.com> 작성:
>
> Sorry about the last post -- I accidentally clicked "send" before I'd
> written my message.
>
> Sok Ha:
>
> expr    = show send ++ "+" ++ show more ++ "=" show money
>
>
> should read
>
> expr    = show send ++ "+" ++ show more ++ "=" ++ show money
>
> The error message is rather cryptic -- ghc seems to assume that "=" must
> be intended as a function, since it it has other values (potential
> arguments) to the right of it. I usually don't spend much time trying to
> figure out ghc error messages unless I really can't solve the problem by
> just looking over the offending line carefully. Very often it's just a typo
> (as it seems to be in your case).
>
>
> On Sun, Jan 26, 2014 at 7:24 PM, Matthew Moppett <matthewmoppett at gmail.com
> > wrote:
>
>> Hi Sok Ha.
>>
>> expr    = show send ++ "+" ++ show more ++ "=" show money
>>
>>
>>
>> On Sun, Jan 26, 2014 at 7:16 PM, Sok Ha Chang <shaegis at gmail.com> wrote:
>> > 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
>> > _______________________________________________
>> > Beginners mailing list
>> > Beginners at haskell.org
>> > http://www.haskell.org/mailman/listinfo/beginners
>>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140127/28aa0393/attachment.html>


More information about the Beginners mailing list