gpt4 book ai didi

haskell - 类型类中的参数变量

转载 作者:行者123 更新时间:2023-12-02 11:24:59 26 4
gpt4 key购买 nike

我在类型类中有一个参数变量,我想表示任何数字类型(FloatIntegerDouble等)。

如何在类型和实例中声明它?

最佳答案

如果您指的是类本身的类型参数,则可以向类定义的上下文添加约束:

class (Num a) => Foo a where
-- stuff

另一方面,如果它是函数类型中的参数而不是类参数,那么您可以以通常的方式添加约束:

class Foo a where
foo :: (Num b) => a -> b -> b

如果您想将其限制为仅某些特定类型,那实际上是不可能的 - 类型类是“开放的”,即您始终可以添加实例。您能做的最好的事情就是拥有自己的类(FooNumbers 等),只编写您想要的实例,然后要求它而不是 Num。但这通常没有帮助。

关于haskell - 类型类中的参数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764899/

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