5
背景:我不明白~並正在請求一個用例。使用2函數理解`〜`
考慮:
{-# LANGUAGE GADTs #-}
f :: a ~ b => a -> b -> b
f a b = a
g :: a -> a -> a
g a b = a
在我看來,這兩個功能都是平等的:
Prelude> :r
[1 of 1] Compiling Main (TypeEq.hs, interpreted)
Ok, modules loaded: Main.
*Main> f 10 20
10
*Main> g 10 20
10
在什麼情況下會是使用f
超過g
有用嗎?
的確,沒有優勢在這種情況下:這些功能是平等的。我想你需要類似家庭或GADT的東西來看看一些有用的東西。或者$ Data.Typeable.eqT $可以作爲一個很好的例子。 – chi
如果你想知道如何以一種非常有用的方式使用'〜',請閱讀Chris Done這篇偉大的博客文章:http://chrisdone.com/posts/haskell-constraint-trick – Shersh