gpt4 book ai didi

haskell - 派生类型类和创建实例之间的区别

转载 作者:行者123 更新时间:2023-12-05 00:20:11 25 4
gpt4 key购买 nike

假设我有这个数据类型:

data TrafficLight = Red | Yellow | Green deriving (Eq)

和创建 Eq的实例有什么区别像这样:
data TrafficLight = Red | Yellow | Green

instance Eq TrafficLight where
Red == Red = True
Green == Green = True
Yellow == Yellow = True
_ == _ = False

我在这里缺少什么?

注意

这个问题不同于 assumed duplicate因为我正在寻找 deriving 之间的对比和 instance关键词。假定的欺骗没有提到 instance关键词。

最佳答案

你没有错过任何东西; deriving只是让编译器为您写出“明显”的实例。如果你自己写出实例,它不会做任何你不能做的事情。

好处是(1)您不必写出实例,并且(2)它会与任何读取实例的源的人进行通信 显而易见的(而不是必须阅读实例定义来确定它是否是非标准的)。

关于haskell - 派生类型类和创建实例之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35052000/

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