[Haskell-beginners] GHC not buying what I am offering this afternoon

Geoffrey Bays charioteer7 at gmail.com
Mon Mar 9 20:25:02 UTC 2015


Thanks, Joel.

Putting the type IO [()] in the main declaration and this as the final line
of the main function does do the trick:

sequence [putStrLn $ show s | s <- newList]

But this is the kind of thing that makes Haskell types difficult for
beginners to work with...

Geoffrey

On Mon, Mar 9, 2015 at 4:15 PM, Joel Williamson <joel.s.williamson at gmail.com
> wrote:

> main must have type IO a. Hoogle tells me that to convert [IO a] -> IO
> [a], you should use the function sequence. Try applying that to your final
> line.
>
> On Mon, 9 Mar 2015 16:07 Geoffrey Bays <charioteer7 at gmail.com> wrote:
>
>> My main function looks like this:
>>
>> main :: [IO()]
>> main = do
>>     let stud1 = Student {name = "Geoff", average = -99.0, grades =
>> [66,77,88]}
>>     let stud2 = Student {name = "Doug", average = -99.0, grades =
>> [77,88,99]}
>>     let stud3 = Student {name = "Ron", average = -99.0, grades =
>> [55,66,77]}
>>     let studList = [stud1,stud2]
>>     let newList = calcAvg studList
>>     [putStrLn $ show s | s <- newList]
>>     --putStrLn $ show (newList !! 0)
>>     --putStrLn $ show (newList !! 1)
>>
>> With this final line, putStrLn $ show (newList !! 0), the type IO () in
>> the function declaration compiles fine.
>> But with [putStrLn $ show s | s <- newList] as the final line, [IO ()] in
>> the function declaration will not compile, I get this error:
>>
>>     Couldn't match expected type `IO t0' with actual type `[IO ()]'
>>
>> What does the declared type need to be for a final line of:
>> [putStrLn $ show s | s <- newList]  ???
>>
>> Thanks,
>>
>> Geoffrey
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150309/58165721/attachment-0001.html>


More information about the Beginners mailing list