Haskell Prelude.read: no parse String

This is because the string representation you have is not the string representation of a String, it needs quotes embedded in the string itself:

> read "\"asdf\"" :: String
"asdf"

This is so that read . show === id for String:

> show "asdf"
"\"asdf\""
> read $ show "asdf" :: String
"asdf"

As a side note, it’s always a good idea to instead use the readMaybe function from Text.Read:

> :t readMaybe
readMaybe :: Read a => String -> Maybe a
> readMaybe "asdf" :: Maybe String
Nothing
> readMaybe "\"asdf\"" :: Maybe String
Just "asdf"

This avoids the (in my opinion) broken read function which raises an exception on parse failure.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)