Elm 中的类型约束

Tom*_*ich 9 polymorphism types typeclass elm

根据Elm 中的可比性意味着什么? comparable是内置类型约束,可用于将类型变量限制为那些可比较的内置类型。下面的问题浮现在脑海中(并不那么容易找到):

  • Elm 中当前存在的其他类型约束是什么?某处有清单吗?
  • 有没有办法创建自己的类型约束?我认为答案是否定的,因为 Elm 现在没有任何机制,例如 Haskell Typeclasses?
  • 如果上述情况属实(没有自定义类型约束),那确实意味着 Elm 中的多态性非常有限,不是吗?例如,现在似乎无法实现以下内容:我想创建一个f接受元素列表(相同但不确定类型)的函数,每个元素都可以用作某个函数的参数g(即f接受List a和此外inst属于类型a意味着g(inst)有意义)

Fre*_*ski 9

除了comparable(整数、浮点数、字符、字符串、列表和元组)之外,还有appendable(字符串、文本和列表)和number(整数和浮点数)。我还没有看到权威列表(在编译器源之外)。

没有办法定义您自己的类似类型类。

是的,这限制了您可以编写的功能。没有人让 Evan 相信这个限制是一个问题。

  • 谢谢,现在已经很清楚了。另外,看看 Haskell 开发人员为使类型类足够强大而构建的所有东西(而且仍然有很多人对此大发雷霆!),我知道 Evan 对此不情愿:) (2认同)