|
|
1
4
Scala对ADT的表示不同于Haskell,因为它的构造函数有自己的类型。这部分是关于实际的互操作性,在JVM上使用子类型是很自然的 both advantages and disadvantages . 您遇到了一个缺点,即将值静态类型化为构造函数类型通常会使类型推断和隐式解析复杂化。
类型类实例是静态解析的,在您的例子中更是如此
现在你可以写了
请注意,这个问题在更简单的上下文中也会出现。例如,假设我们想用
因为的推断类型
如果标准库提供
在您的情况下,您大概可以控制ADT定义,因此您可以自己提供这样的智能构造函数。 |
|
|
Sunil Rajashekar · 基于条件的Zip非序列列表 8 年前 |
|
|
user461112 · scala对象(非类)的依赖注入 8 年前 |
|
|
Archeg · scalaz中的类型类和继承 10 年前 |
|
|
Marin · Scalaz http模块发生了什么? 11 年前 |