Dotty将如何改变Scala中的纯函数式编程?

在2013年的这个问题中,奥德斯基先生指出,“由于阉割高级和存在类型,现在判断斯蒂拉兹图书馆是否能够存在(至少在目前的状态下)是太早了。

在过去的时间里,Dotty对Scalaz&Cats的影响已经阐明​​了吗? 将建议的功能(如内置效果和记录)是否会改变这些项目的范围?

据我所知,Dotty仍然是取代Scalac的一种方法,但由于我正在考虑投入时间将纯功能性构造和方法应用于我的工作,我认为考虑其旗舰图书馆的未来至关重要。


Dotty最新的一个例子是“Scaling Scala”作者:Chris McKinlay(2016年12月15日)(同一文章也提到了Scalaz和Cats的情况)

Martin Odersky一直领导Dotty的工作,Dotty是一个基于相关对象类型(DOT)演算(基本上是Scala简化版本)的新型研究编译器,以及函数式编程(FP)数据库社区的观点。

从事Dotty开发的团队已经在技术水平方面取得了显着的进步,尤其是在编译时间方面。 我问了Odersky他对Dotty架构的看法,并且会帮助最终用户。 这就是他所说的:

想到两件事:

  • 首先,它与正式的基础密切相关,为我们如何设计完善的类型系统提供了更好的指导。 这将会减少路上用户的意外。
  • 其次,它有一个基本功能的架构。 这使得扩展更容易,更容易正确,并且将导致更强大的API,其中编译器被用作IDE和元编程的服务。
  • 虽然Dotty开辟了一些有趣的语言可能性(尤其是全谱依赖类型,la Agda和Idris),但Odersky选择优先考虑使其对社区立即有用。 语言差异相当小,其中大部分是为了简化语言(如删除过程语法)或修复错误(不健全的模式匹配)或两者(早期初始化)。

    尽管如此,我还是忍不住问他是否有机会在某些时候在Scala结束全谱依赖类型。 这是他所说的:

    永不说永不 :-)。 实际上,我们目前正在与Viktor Kuncak合作,将Leon程序证明程序与Scala结合起来,Scala需要比现在更丰富的依赖类型。 但它目前严格的研究,完全公开的结果。

    Scala和Dotty团队正在密切合作Scala 2.x和Dotty的融合,他们表示他们非常重视连续性。 Scala 2.12和2.13有解锁在Dotty中孵化功能的语言标记(例如,存在类型),并且Dotty编译器具有Scala 2兼容模式。 甚至还有一个迁移工具。

    链接地址: http://www.djcxy.com/p/37323.html

    上一篇: How will Dotty change pure functional programming in Scala?

    下一篇: How to get Database connection in Spring using JUnit?