Почему я получаю сообщение об ошибке при попытке "прочитать" это значение?

Код.hs:

data Person = Person { firstName :: String  
                     , lastName :: String  
                     , age :: Int  
                     } deriving (Eq, Show, Read)

Компиляция:

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

Во время тестирования сразу после компиляции:

*Main> read "Person {firstName = \"Michael\", lastName \"Diamond\", age = 43}" :: Person  
*** Exception: Prelude.read: no parse

Пожалуйста, руководство. Почему эта ошибка происходит и как избежать таких ошибок?

1 ответ

Решение
lastName \"Diamond\"

отсутствует знак равенства.

read "Person {firstName = \"Michael\", lastName = \"Diamond\", age = 43}" :: Person
Другие вопросы по тегам