[Haskell-beginners] How can I print the outcome with using main.
Daniel Bergey
bergey at alum.mit.edu
Tue Feb 24 14:44:55 UTC 2015
Try:
| main :: IO ()
| main = do
| msgs <- testParse parse 10 "error.log"
| print msgs
Your plan is good. GHCi handles IO values specially, for convenience,
which blurs the distinction between values which can be fed to `print`
directly, and those in IO, which need to be bound as above.
On 2015-02-24 at 13:48, Roelof Wobben <r.wobben at home.nl> wrote:
> Hello,
>
> According to the manual of the CIS 194 course I have to do this in GHCI : testParse parse 10 "error.log"
> This to test my code.
>
> Now my problem is that I cannot use GHCI because I use Fpcomplete.
> So I thought I will use main for this :
>
> So I tried this :
>
> main :: IO ()
> main = do
> print $ testParse parse 10 "error.log"
>
> but then I see this error message :
>
> src/LogAnalysis.hs at 39:4-39:9
> No instance for (Show (IO [LogMessage])) arising from a use of
> print
> … In the expression: print In a stmt of a 'do' block: print $ testParse parse 10 "error.log" In the expression: do { print $
> testParse parse 10 "error.log" }
>
> The testparse function looks like this :
>
> -- | @testParse p n f@ tests the log file parser @p@ by running it
> -- on the first @n@ lines of file @f at .
> testParse :: (String -> [LogMessage])
> -> Int
> -> FilePath
> -> IO [LogMessage]
> testParse parse n file = take n . parse <$> readFile file
>
> Roelof
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
More information about the Beginners
mailing list