gpt4 book ai didi

list - Haskell 中列表的 `==` 的源代码定义

转载 作者:行者123 更新时间:2023-12-01 22:58:06 25 4
gpt4 key购买 nike

有谁知道在 Haskell 中如何为列表定义 exactly ==?我试过 Hoogling 它,但似乎无法找到实例 Eq [a] 的定义位置。

最佳答案

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

没有什么 super 令人兴奋的。两个空列表相等,如果头部和尾部相等,两个非空列表也相等。最后,两个任意列表是不相等的。唯一有趣的部分是专门化指令,它应该单态化整数列表、字符串和字符串列表的相等性检查。

关于list - Haskell 中列表的 `==` 的源代码定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72504080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com