我有一個數據類型,例如:Haskell的抽象數據類型和檢索字符/定義爲字符串
data MyData = Something1 String
,然後我myFunction的內有功能
myFunction :: MyData -> String
myFunction x = x
我想指的是字符,即['S','o','m','e'......'1']這些都是我的數據類型MyData。不過,我得到以下錯誤:
Couldn't match expected type
[Char]' with actual type
MyData' Expected type: String Actual type: MyData
據我瞭解[字符]相同字符串,我宣佈「Something1」爲字符串,所以它應該工作?
我應該告訴你我的整體問題,我想創建自定義數據類型,但是我需要能夠在我的代碼中訪問組成它們的角色(如Something1)。 – user997112
啊,我想我明白你想要做什麼。不,你不能直接訪問構造函數本身的名字,儘管你可以定義一個函數'myFunction(Something1 _)=「Something1」'。更高級的選項是派生'Data'和'Typeable'類類。這將允許你編寫'myFunction x = showConstr(toConstr x)',但是它是同樣的事情,編譯器爲你創建樣板。 – hammar