dotty相关内容

Scala 3 - 在一阶类型上提取包装器和 InverseMap 元组

我正在尝试创建一个函数,它接受一个更高种类的类型的元组并将一个函数应用于更高种类的类型中的类型. 在下面的示例中,有一个 trait Get[A],它是我们的高级类型.还有一个 Get 的元组: (Get[String],Get[Int]) 以及来自 (String,Int) => 的函数人. Scala-3 有一个称为 InverseMap 的 Match-Type,它将类型 (Ge ..
发布时间:2022-01-20 08:15:44 其他开发

在 Scala 2 或 3 中,是否可以在运行时调试隐式解析过程?

在 scala 语言中,隐式解析通常在编译时完成,有时会抛出混淆的错误信息,此类错误的一个著名例子是 shapeless Generic 抛出错误信息,如: 错误:找不到参数编码器的隐式值:CsvEncoder[Foo] (参见 https://books.underscore.io/shapeless-guide/shapeless-guide.html 详情) 这个问题的解决方案是在 ..
发布时间:2021-12-07 13:27:26 其他开发

如何使用宏在 Dotty 中生成一个类?

是否可以在 Dotty、Scala 3 中使用宏生成新类? Zlaja 解决方案 目前在 Dotty 中只有(种类)def 宏.目前没有(某种)宏注释,它可以生成一个新成员,新班级等 对于新成员、新类等的生成,您可以使用 Scalameta(不带或带 SemanticDB, Scalafix [另见] 取决于此类生成是否为 只是句法或语义),它在编译时间(源代码生成)之前 ..
发布时间:2021-11-10 22:25:32 其他开发

Scala 3 - 在一阶类型上提取包装器元组和 InverseMap

我正在尝试创建一个函数,该函数采用高级类型的元组并将函数应用于高级类型中的类型. 在下面的例子中,有一个 trait Get[A] 是我们的高级类型.还有一个 Get 的元组:(Get[String],Get[Int]) 以及来自 (String,Int) => 的函数.人. Scala-3 有一个名为 InverseMap 的匹配类型,它将类型 (Get[String], Get[I ..
发布时间:2021-07-15 20:02:50 其他开发

如何使用匹配类型实现 SKI 组合器演算?

我试图在 Dotty 中使用匹配类型实现 SKI 组合器演算.> SKI 组合子演算的简要说明: S、K 和 I 是术语 (xy) 是一个术语,如果 x 和 y 是术语并且类似于函数应用 (((Sx)y)z)(同Sxyz)返回xz(yz)(同(xz)(yz)) ((Kx)y)(同Kxy)返回x (Ix) 返回 x 以下是我使用的(R 尽可能减少术语).项 (xy) 被写成一个 ..
发布时间:2021-06-14 20:15:46 其他开发

Dotty提供什么来代替类型投影?

我一直在阅读有关Dotty的内容,因为它看起来将成为scala 3,并且注意到类型投影被认为是“不合理的",并已从语言中删除... 这似乎简直是无赖,因为我已经看到了几个用例真正有用的地方.例如: trait Contents class Foo extends Contents class Bar extends Contents trait Container[T ..
发布时间:2020-07-21 20:20:09 其他开发

使用Intellij IDE运行Scala Dotty项目

我使用Dotty模板创建了一个基本的Scala Dotty项目,并将该项目导入Intellij IDE. 当我使用sbt命令行时,一切正常. 当我尝试在Intellij IDE中构建或运行它时,出现以下错误: Error:scalac: Multiple 'scala-library*.jar' files (scala-library-0.9.0-RC1.jar, scala- ..
发布时间:2020-07-21 20:20:07 其他开发

如何在Dotty宏中访问案例类的参数列表

我正在尝试学习dotty的元编程.具体编译时间码生成.我认为通过构建一些东西来学习将是一个很好的方法.因此,我决定制作一个CSV解析器,该解析器会将行解析为case类.我想使用点子宏来生成解码器 trait Decoder[T]{ def decode(str:String):Either[ParseError, T] } object Decoder { inline given ..
发布时间:2020-07-21 20:19:02 其他开发

Scala 3中的类型推断更改

Scala 3将带来类型推断的哪些变化?当前文档仅声明 TODO .例如, 弱一致性 Scala 2.13 scala> val i: Int = 42 val i: Int = 42 scala> val c: Char = 'a' val c: Char = a scala> List(i,c) val res0: List[Int] = List(42, 97) S ..
发布时间:2020-07-21 20:18:58 其他开发

如何在Scala中编程以与Dotty向前兼容

最近在《怪圈》中的谈话中,马丁·奥德斯基(Martin Odersky)阐明了他对Scala未来版本的看法叫多蒂.我知道这是一个进行中的工作,由于许多可能的向后兼容问题,它甚至可能不会流入Scala(至少不是很快).但是,如果发生这种情况,我们今天应该如何在Scala中编程以与Dotty向前兼容?我没有从演讲中得到所有想法,所以我希望有一个更深刻的人来总结这些变化并描述我们如何为它们做好准备. ..
发布时间:2020-07-21 20:18:55 其他开发

如何从Visual Studio Code UI执行点代码

我正在尝试使用Visual Studio Code运行点代码.我根据此页面中的说明使用sbt launchIDE启动了IDE. ,并且我还安装了Dotty Language Server和Code Runner扩展名. Dotty是使用brew安装的,我可以从CMD编译和执行Dotty代码. 问题是我无法从Visual Studio Code运行此代码,因为Code Runner试图使用sc ..
发布时间:2020-07-21 20:18:53 其他开发

如何在Dotty中使用给定的?

我正在查看Contextual Abstractions页面下的Dotty文档,并且看到了Given Instances. 给出的实例(或简称为“给定")定义了以下的“规范"值: 用于综合给定子句参数的某些类型. 示例: trait Ord[T] { def compare(x: T, y: T): Int def (x: T) ..
发布时间:2020-06-26 18:40:46 其他开发

根据类型参数生成函数

我想为一个接受1个类型参数的类生成函数,该参数包装一个按名称值. class C[T](_t: => T) { def t: T = _t } 我想生成的函数是由T上可用的函数派生的. 我确切想要的是获取所有可用于T的功能,以编程方式更改其合约和实施,并使它们可用于C. 通过更改其合同,我的意思是更改其签名,以便它们返回C[R],其中R代表原始函数的返回类型. ..
发布时间:2020-05-05 09:14:16 其他开发

在宏扩展时生成函数

我想为一个接受1种类型参数的类生成函数 case class C[T] (t: T) 取决于T类型参数. 我想生成的函数是由T上可用的函数派生的. 我想确切地是使所有功能可用于T,也可用于C. 作为C[Int]的示例,我希望能够在C上调用Int上可用的任何函数,并将该函数调用分派到C中包含的Int. val c1 = new C(1) assert(c1 + 1 ..
发布时间:2020-05-05 09:02:45 其他开发