2013-10-13 27 views
1

我很新的Haskell,我試圖從函數聲明中創建一個類型變量(不太確定是什麼在Haskell中調用它)的記錄類型。
一如往常,代碼解釋了我的問題好了很多:從函數聲明中使用類型變量

data S a = S {x::a} 

f :: a -> S a 
f n = (S a){x=n} 

GHC說一個是不是在最後一行範圍。這怎麼可能完成?

+2

ghci似乎很滿意'f n = S {x = n}' – user1937198

+0

你說得對,哇,這是一個簡單的解決方案。如果您將此添加爲答案,我會高興地接受它。感覺像一個白癡,我沒有嘗試。 –

回答

5

使用f n = S {x=n},類型變量是不必要的

1

在情況下,你從申報所需要的類型變量,使用scoped type variables擴展。

+0

不知何故,我無法得到ScopedTypeVariables的一個工作示例。它有可能嗎? – nponeccop

+0

@nponeccop如何在文檔中的一個? –