0
我特林聲明如下一個新的類型值:如何在Haskell中聲明帶有類型約束的新類型?
data Value m = Wrong | Num Int | Fun (Value -> m Value)
而且GHCI抱怨:
<interactive>:160:39:
Expecting one more argument to ‘Value’
Expected a type, but ‘Value’ has kind ‘k0 -> *’
In the type ‘Value -> m Value’
In the definition of data constructor ‘Fun’
In the data declaration for ‘Value’
PS:我想實現的The essence of functional programming
他們,我幾乎得到它... – wtl
'Value'曾經是這是隻針對單一類型的構造'M'用一種定義的類型'* - > * '。你推廣'Value'是一個類型構造函數本身,但是一個接受'* - > *'類型的值而不是具體類型的值。這意味着您需要將'Value'應用於定義中的'm' *遍地*,以便您的定義進行類型檢查。 – chepner