On Friday 10 June 2011, 13:49:23, Dmitri O.Kondratiev wrote:
> On Thu, Jun 9, 2011 at 11:31 AM, Max Bolingbroke
> <[email protected]
> 
> > wrote:
> > 
> > If you want plain text serialization, "writeFile "output.txt" . show"
> > and "fmap read (readFile "output.txt")" should suffice...
> > 
> > Max
> 
> This code works:
> 
> main = do
>      let xss = [[1,2,3],[4,5,6],[7,8],[9]]
>      writeFile "output.txt" (show xss)
>      line <- readFile "output.txt"
>      let xss2 = read line :: [[Int]]
>      print xss2
> 
> As soon as complete file is returned as a single line, using 'fmap' 
> does not make sense here:
>      line <- readFile "output.txt"
>      let xss2 = fmap read line
> 
>  When to use 'fmap'?

    xss2 <- fmap read (readFile "output.txt")

or

    xss2 <- read `fmap` readFile "output.txt"

But it might be necessary to tell the compiler which type xss2 ought to 
have, so it knows which `read' to invoke, if it can't infer that from later 
use.

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to