나는 각각의 사람이 섹스와 이름을 가진 'Person'유형을 만들려고합니다.이 형식 선언이 작동하지 않는 이유는 무엇입니까?
data Sex = Sex Char deriving Show
male = Sex 'M'
female = Sex 'F'
data Name = Name [Char] deriving Show
data Person = Person {
Sex :: Sex,
Name :: Name
} deriving (Show)
내가 ghci이를로드 할 때 난 그냥 내가 잘못 여기서 뭐하는 거지 무슨 도움이되지 않는 오류 parse error on input 'Sex'
를 얻을?
임의의 PS로, 부울 데이터 값처럼이 값을 정의하면 훨씬 적은 가능성과 버그가 줄어 듭니다. 예를 들어 누군가가 (Sex 'Z')와 함께 함수를 호출하면 어떨까요? 나는 다음을 제안 할 것이다 : data Sex = Female | 남성 파생 (...) – codebliss
@codebliss, 감사합니다. 유형에 대한 트릭을 잊어 버렸습니다. (나는 정말로 * n00bish n00b입니다.) – friedo
당신이 물어 본 질문이 아니지만 "데이터 섹스 = 남성 | 여성"으로 섹스를 정의하는 것이 더 낫습니다. –