鉴于以下 Haskell 代码快照:
class Foo a where
bar :: a -> ...
quux :: a -> ...
...
Run Code Online (Sandbox Code Playgroud)
a 的值是在运行时确定的 - 类根据这个值调度。
我假设编译器可以在编译时静态检查类型,并确保没有无效类型可以调度它。
现在,如果我们将其与 Java 中的动态调度进行比较:
interface Flippable {
Flippable flip();
}
class Left implements Flippable {
Right flip();
}
class Right implements Flippable {
Left flip();
}
class Demo {
public static void main(String args[]) {
Flippable flippable = new Right();
System.out.println(flippable.flip);
}
}
Run Code Online (Sandbox Code Playgroud)
假设:
我的问题是:Haskell TypeClass 的调度是动态的吗?