我在以下博客中看到此代码:Scala中的Type-Level Programming:
// define the abstract types and bounds
trait Recurse {
type Next <: Recurse
// this is the recursive function definition
type X[R <: Recurse] <: Int
}
// implementation
trait RecurseA extends Recurse {
type Next = RecurseA
// this is the implementation
type X[R <: Recurse] = R#X[R#Next]
}
object Recurse {
// infinite loop
type C = RecurseA#X[RecurseA]
}
我从未见过#
的代码中有一个运算符R#X[R#Next]
。由于很难搜索(搜索引擎忽略了它),谁能告诉我这是什么意思?
1
“英镑符号”有时也称为“八进制”(由Google搜索将我带到此页面)。
—
philwalk
像#+和#-这样的其他运算符呢(请参阅github.com/tpolecat/doobie/blob/series/0.4.x/yax/h2/src/main/…)?有完整的清单吗?
—
Markus Barthlen'2