gpt4 book ai didi

haskell - 有没有办法在 Haskell 的类型类中实现约束?

转载 作者:行者123 更新时间:2023-12-04 01:37:24 25 4
gpt4 key购买 nike

有没有办法(任何方式)在类型类中实现约束?

作为我正在谈论的示例,假设我想将 Group 实现为类型类。因此,如果存在三个函数,则类型将是一个组:

class Group a where
product :: a -> a -> a
inverse :: a -> a
identity :: a

但这些都不是任何功能,但它们必须通过一些约束相关联。例如:
product a identity = a 
product a (inverse a) = identity
inverse identity = identity

ETC...

有没有办法在类的定义中强制执行这种约束,以便任何实例都会自动继承它?例如,假设我想实现 C2 组,定义为:
 data C2 = E | C 

instance Group C2 where
identity = E
inverse C = C

这两个定义唯一地确定了 C2(上面的约束定义了所有可能的操作 - 事实上,由于约束,C2 是唯一具有两个元素的可能组)。有没有办法使这项工作?

最佳答案

Is there a way to enforce this kind of constraint?



号码很多人一直在要求它,包括杰出的托尼霍尔,但目前还没有任何迹象。

这个问题将是 Haskell Prime 的一个很好的讨论主题。团体。如果有人提出了一个好的建议,很可能在那里找到。

附言这是一个重要的问题!

关于haskell - 有没有办法在 Haskell 的类型类中实现约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2253235/

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