
Ah, I see. Thanks a lot for the clarification!
Patrik Iselind
Den fre 13 juli 2018 09:31Francesco Ariis
On Fri, Jul 13, 2018 at 09:06:51AM +0200, mrx wrote:
That makes sense to me based on the type, sure. So read is some form of casting then?
Yep, but just from `String` and nothing else.
Does this answers your question?
Maybe, but I still don't see what I'd use it for. Is it used to for
example
read the contents of a file whose file name is provided as that string?
No, you would use `readFile` for that:
readFile :: FilePath -> IO String -- Filepath is a type synonym for `String`
You would use `read` to convert simple user input (which is usually collected as String) into, say, Integers
getLine :: IO String -- this could need read
And in general, `Read` is supposed to be compatible with `Show`, so if you used `show` for any reason (some form of cheap serialisation, etc.), `read` should work back the type:
λ> show [1..10] "[1,2,3,4,5,6,7,8,9,10]" λ> read it :: [Int] [1,2,3,4,5,6,7,8,9,10]
tl;dr: cheap type parsing. For any more specialised/complex parsing, use a proper parsing library like Parsec. _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners