2012-07-23 3 views
1

.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 

안내하시기 바랍니다. 왜이 오류가 발생하고 이러한 오류를 피하는가?

답변

7
lastName \"Diamond\" 

에는 등호가 없습니다.

read "Person {firstName = \"Michael\", lastName = \"Diamond\", age = 43}" :: Person 
+0

경, 오류를 제거했습니다. 코드가 작동 중입니다. 죄송합니다. 작은 일에 시간을 들였습니다. – Optimight

+5

문제가 없으므로 시간이 오래 걸리지 않았습니다. 그것이 내 것이 아니기 때문에 오타가 빨리 뛰어 올랐습니다. "그런 오류를 피하는 방법"에 관해서는 불행히도, 당신은 항상 다른 사람들과 마찬가지로 오타를 만들 것입니다. –

+1

선생님, 따뜻한 반응으로 (더 빨리 배우려면) 격려를 받았습니다. 고마워. – Optimight