28

我有以下 scala 类定义(在论文中找到),建模类别:

trait Category[~>[_, _]] {
    def compose[A, B, C]
     (f: B ~> C)
     (g: A ~> B)
     : A ~> C
    def id[A]: A ~> A
}

有人可以解释一下“~>”在 Category 类型参数和方法返回类型中的含义吗?或者将我引导到解释它的资源...我是 Scala 的新手(来自 Java),所以如果这是 scala 用户应该知道的,请原谅我...提前谢谢你

4

2 回答 2

34

~>只是类型参数的占位符名称Category。就像Tclass Option[T].

此外,Scala 语法允许您编写B ~> C~>[B, C].

如果你重命名它,也许事情会变得更清楚:

trait Category[Mapping[_, _]] {
  def compose[A, B, C](f: Mapping[B, C])(g: Mapping[A, B]): Mapping[A, C]
  def id[A]: Mapping[A, A]
}
于 2012-04-10T09:18:32.163 回答
1

这也用于Akka 流中作为边缘运算符。

于 2019-05-06T19:59:00.360 回答