[Haskell-beginners] Couldn't match expected type ‘IO ()’ with actual type [Integer]
Roelof Wobben
r.wobben at home.nl
Thu Feb 5 13:07:02 UTC 2015
Max Voit schreef op 5-2-2015 om 13:35:
> On Thu, 05 Feb 2015 13:25:16 +0100
> Roelof Wobben <r.wobben at home.nl> wrote:
>
>> Another question : how can I display the array ?
>>
>> putStrln works only for strings,
> Yep, so you need to convert it to a string and putStrLn that. Kindly
> enough typing ":i []" into ghci tells you, that lists have an instance
> for "show".
>
> Anonther option would be to convert every single list element to a
> string and putStrLn that. "map" comes in handy here (or mapM_ if you
> directly want to use print instead of putStrLn . show).
>
> best,
> Max
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
Thanks that part worked fine.
One part I cannot figure out is how to make this :
-- | Main entry point to the application.
module Main where
-- | convert a number to a array in pieces where a negative number will
be a empty array.
toDigits :: Integer -> [Integer]
toDigits n
| n < 0 = []
| otherwise = n `mod` 10 : []
-- | The main entry point.
main :: IO ()
main = do
print $ toDigits 123
Now it showing only [1] or [23]
I have to find out how I can do something like this toDigits 23 [1]
But I cannot do this that way because it has to be Integer -> [Integer]
Who has a tip for me ?
Roelof
More information about the Beginners
mailing list