은 우리가 내가하는 기능을해야 할 우리가하스켈 : 문자열로 데이터 생성자의 이름을 가져옵니다
data D = X Int | Y Int Int | Z String
있다고 가정 해 봅시다 getDConst
getDConst :: D -> String
Z "를 입력에 사용 된 데이터 생성자에 따라 비교합니다. 모든 데이터 생성자에 case
을 수행 할 필요없이 이것을 작성하는 일반적인 방법이 있습니까?
import Data.Data
data D = X Int | Y Int Int deriving (Data,Typeable)
let result = show $ toConstr (X 3) -- result contains what we wanted
다른 사람이 함께 오류를 얻을 경우 추가 시도'{- # 언어 DeriveDataTypeable #을 -} '파일의 시작 부분. GHC에서 데이터 및 유형을 파생시킬 때 필요합니다. – jPlatte