2
比方說,我有一個函數簽名的一部分:上的`一個類型的約束 - > B`功能
f :: (a -> b) -> ...
的類型而定a
和b
是否有任何限制(如他們kinds
) ?
a
不能是一個功能,即(c -> d)
,可以嗎?
比方說,我有一個函數簽名的一部分:上的`一個類型的約束 - > B`功能
f :: (a -> b) -> ...
的類型而定a
和b
是否有任何限制(如他們kinds
) ?
a
不能是一個功能,即(c -> d)
,可以嗎?
a
and b
must have kind *
,也就是說它們不能是需要參數的類型構造函數。所以他們可能是Integer
,(c -> d)
或Maybe String
,但不是(->)
,(a ->)
或Maybe
。
a
不能是一個函數,即(c -> d)
,可以嗎?
是的,它可以。它可以是任何可能的種類*
。
嗯,所以當使用單詞'type'時,它暗示有''''''''''''''? – 2014-11-23 16:59:25
@KevinMeredith對我而言,這在技術上可能不夠正確。我改變了我的措辭,以便更清楚。 – sepp2k 2014-11-23 17:16:37
有關'*'類型的解釋,請參見[本答案](http://stackoverflow.com/a/22807963/1186208)或[GHC 7.4.2文檔的此部分](https://下載.haskell.org /〜GHC/7.4.2 /文檔/ HTML/users_guide /種,多態性和-promotion.html)。 (當前的文檔似乎已經放棄了最初的討論。)我隨便把'*'看作帶*值*的類型(當然包括函數值),但這可能不是很正確。 – 2014-11-23 17:18:25