有誰知道 Haskell 中的串列是如何定義 ==的?我試過Hoogling它,但似乎無法找到Eq [a]定義實體的位置。
uj5u.com熱心網友回復:
Eq其他內置實體的 GHC 實作是用GHC.Classes. 具體來說,您正在尋找Eq [a]
instance (Eq a) => Eq [a] where {-# SPECIALISE instance Eq [[Char]] #-} {-# SPECIALISE instance Eq [Char] #-} {-# SPECIALISE instance Eq [Int] #-} [] == [] = True (x:xs) == (y:ys) = x == y && xs == ys _xs == _ys = False
沒有什么特別令人興奮的。兩個空串列相等,如果頭尾相等,則兩個非空串列相等。最后,兩個任意串列是不相等的。唯一有趣的部分是專門化指令,它應該對整數串列、字串和字串串列進行單態相等檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/487875.html
上一篇:我怎樣才能優雅地處理也許monad的Nothing分支?
下一篇:使用foldl計算產品總和
