排名較高的類型看起來很有趣。從Haskell wikibook談到這個例子:你在Haskell中發現了哪些更高級的類型?
foo :: (forall a. a -> a) -> (Char,Bool)
foo f = (f 'c', f True)
現在我們可以不用編譯爆炸評估foo id
。這個例子在本書中被我在其他幾個地方看到的現實世界的例子很快地追蹤到:ST monad和runST
。這很酷。
但是我還沒有遇到這樣的情況,我通過編寫自己的函數來解決一個問題,使用更高級的參數。你有嗎?你在野外有什麼樣的等級2或等級-n多態性的例子?