为什么在尝试"读取"此值时出现错误?

Opt*_*ght 1 haskell haskell-prelude

.hs代码:

data Person = Person { firstName :: String  
                     , lastName :: String  
                     , age :: Int  
                     } deriving (Eq, Show, Read)
Run Code Online (Sandbox Code Playgroud)

编译:

*Main> :load "/home/optimight/baby.hs"  
[1 of 1] Compiling Main             ( /home/optimight/baby.hs, interpreted )  
Ok, modules loaded: Main.  
Run Code Online (Sandbox Code Playgroud)

在编译后立即测试:

*Main> read "Person {firstName = \"Michael\", lastName \"Diamond\", age = 43}" :: Person  
*** Exception: Prelude.read: no parse
Run Code Online (Sandbox Code Playgroud)

请指导.为什么会出现此错误以及如何避免此类错误?

Dan*_*her 7

lastName \"Diamond\"
Run Code Online (Sandbox Code Playgroud)

缺少一个等号.

read "Person {firstName = \"Michael\", lastName = \"Diamond\", age = 43}" :: Person
Run Code Online (Sandbox Code Playgroud)

  • 没问题,没花多少时间.由于它不是我的,错字跳得很快.至于"如何避免这样的错误?",遗憾的是,你总是会像其他人一样拼写错别字. (5认同)