136得票1回答
什么是Scala的路径依赖类型?

我听说Scala有路径依赖类型。这与内部类有关,但实际上意味着什么,以及为什么我应该关心它?

113得票4回答
为什么Scala没有明确支持依赖类型?

有路径相关类型,我认为在Scala中可以表达Epigram或Agda等语言的几乎所有特性,但是我想知道为什么Scala没有像在其他领域(比如DSLs)那样更明确地支持路径相关类型? 是否有我忽略的原因,例如“这不是必要的”?

19得票1回答
Sample of `forSome { val `?

Scala语言规范规定了存在类型的语法,具体可以参考这里。 Type ::= InfixType ExistentialClauses ExistentialClauses ::= ‘forSome’ ‘{’ ExistentialDcl ...

14得票3回答
为什么Scala有路径依赖类型?

我一直在研究路径依赖类型。我找到的最好描述是: 如果L是一个类型标签,那么当且仅当可以显示x和y引用相同对象时,x.L和y.L是相同的类型。 有时这并不是人们所期望的子类型行为。我本来以为如果上面的例子中L确实是相同的,那么这就足以使x.L和y.L相同。 Scala为什么会设计成...

13得票1回答
为什么Scala无法推断出路径依赖类型的路径,即使有明确的自引用?

我想将一个对象传递给一个接受具有投影类型参数的函数,并让Scala推断出对象的类型来自包含它的对象。这里是一些简单的代码来说明难点:trait Cult { cult_ => case class CultLeader(personality: Personality) { ...

13得票2回答
路径相关类型和嵌套特质

背景 假设我有一些嵌套的特质: trait Foo { trait Bar } 以下是一些实例: val myFoo = new Foo {} val myBar = new myFoo.Bar {} 我可以写出以下代码,这些代码看起来(至少乍一看)应该做大致相同的事情: de...

12得票1回答
依赖方法类型与默认参数存在冲突

当我使用Scala的依赖方法类型时,我遇到了默认方法参数的冲突:abstract class X { type Y case class YY(y: Y) } object XX extends X { type Y = String } trait SomeTrait { ...

12得票1回答
依赖类型对于构造函数不起作用?

路径相关类型很有用:trait Sys { type Global } def foo[S <: Sys](system: S)(global: system.Global) = () 为什么这对构造函数不起作用?class Foo[S <: Sys](val system: ...

12得票1回答
路径相关类型和依赖类型有什么区别?

Scala具有路径相关类型,但据说Scala不支持依赖类型。路径相关类型和依赖类型有什么区别? 据我了解,路径相关类型是依赖类型的一种。

11得票1回答
Scala路径依赖类型和类型级证明

我目前正在尝试在Scala中定义一个基于时钟的数据流语言模型。 一个数据流代表了某种类型T的无限数列,由一些时钟C控制(时钟表示数据流实际可用的时刻)。 可以通过根据另一个(布尔)数据流F'派生出的时钟C对数据流F进行采样来得到采样数据流SF:当布尔数据流F'为真时,SF包含了从F采样得到...