我很新的Haskell,我試圖從函數聲明中創建一個類型變量(不太確定是什麼在Haskell中調用它)的記錄類型。
一如往常,代碼解釋了我的問題好了很多:從函數聲明中使用類型變量
data S a = S {x::a}
f :: a -> S a
f n = (S a){x=n}
GHC說一個是不是在最後一行範圍。這怎麼可能完成?
我很新的Haskell,我試圖從函數聲明中創建一個類型變量(不太確定是什麼在Haskell中調用它)的記錄類型。
一如往常,代碼解釋了我的問題好了很多:從函數聲明中使用類型變量
data S a = S {x::a}
f :: a -> S a
f n = (S a){x=n}
GHC說一個是不是在最後一行範圍。這怎麼可能完成?
使用f n = S {x=n}
,類型變量是不必要的
在情況下,你做從申報所需要的類型變量,使用scoped type variables擴展。
不知何故,我無法得到ScopedTypeVariables的一個工作示例。它有可能嗎? – nponeccop
@nponeccop如何在文檔中的一個? –
ghci似乎很滿意'f n = S {x = n}' – user1937198
你說得對,哇,這是一個簡單的解決方案。如果您將此添加爲答案,我會高興地接受它。感覺像一個白癡,我沒有嘗試。 –