文件名称:typeclass-proposal:Dotty的Typeclass建议
文件大小:11KB
文件格式:ZIP
更新时间:2024-05-14 20:46:34
建议书 该提议基于Martin Odersky的,并试图解决功能性编程Scala社区的一些已知缺点。 因此,该提议的理由应与原始提议相同。 基本原理 有两种主要的Scala程序结构样式:标准(面向对象)类层次结构或使用隐式参数编码的类型类层次结构。 标准的类层次结构导致代码更简单,并允许在运行时类型上进行分派,从而实现了一些难以用隐式模拟的优化。 Typeclass层次结构更加灵活:实例可以独立于实现类型和实现的接口给出,并且可以使实例以其他Typeclass实例为条件。 不幸的是,面向类型类的编程具有很高的前期成本。 它从“类型类”本身的定义开始。 假设您要为map方法(通常称为Functor)实现类型类。 您要支持的用法是: xs.map(f) 但是,您不能将map定义为像这样的一元方法,如果它不是typeclass的一部分,则不能。 相反,您需要按照以下几行来定义地图的二进制版
【文件预览】:
typeclass-proposal-master
----README.md(3KB)
----docs()
--------usage.md(2KB)
--------instances.md(7KB)
--------translations.md(2KB)
--------typechecking.md(2KB)
--------typeclasses.md(6KB)
--------extensions.md(2KB)