相关疑难解决方法(0)

Haskell TypeClass 的调度是动态的吗?

鉴于以下 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 可以根据返回类型以及多个参数进行调度,这使得调度与其他语言不同。

我的问题是:Haskell TypeClass 的调度是动态的吗?

static haskell dynamic typeclass dispatch

1
推荐指数
1
解决办法
1428
查看次数

标签 统计

dispatch ×1

dynamic ×1

haskell ×1

static ×1

typeclass ×1