將字符串轉換爲一個類型構造有誰知道是否有在Haskell一個函數,它確實是這樣的:在Haskell
"Int" -> Int
"String" -> String
"Bool" -> Bool
即。它需要一個類型構造函數名稱的字符串表示,並將其轉換爲實際的類型構造函數,無論是在表達式中還是在模式中。
編輯: 我的總體目標是簡化這樣的:
transExp (Add exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]
transExp (Sub exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [ISub]
成一個單一的模式匹配,所以基本上轉換添加或子爲一個字符串,添加一個「I」到前面,並轉換它回到了一個類型。
這甚至可能嗎?這些類型不是編譯時概念嗎?你正在尋找什麼類型的功能? –
我不知道這是否可能,我想它會有類型字符串 - > a,但我真的不知道... – Jack
然後看看模板haskell。另外'IAdd'不是一個類型,而是一個類型構造函數 - 這是誤導性的。 – nponeccop