- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shapeless文献中译
Shapeless 文献中译
目錄
序言 0
Scala 中的函数式依赖 1
用 Shapeless 实现真正的多态函数 (之一) 2
用 Shapeless 实现真正的多态函数 (之二) 3
Aux 模式 4
Shapeless 与 Aux 5
術語表
2
Shapeless 文献中译
Shapeless 文献中译
Scalaz/Cats 和 Shapeless 是 Library Level Scala 开发者必备工具 。
序言 3
Shapeless 文献中译
Scala 中的函数式依赖
英版原文
函数式依赖是 Haskell 中 ( GHC 及其它一些地方)一个接近标准的扩展功能 。它
用来表达对 type class 的类型参数的约束 ,这个约束可以由编译器来强制保证 。程
序 员可以指明一个多参数的 type class 的某些参数完全由其它参数来确定 。这个功
能的特别常见的应用场景是要求一个函数的返回值类型由此函数的参数类型来确
定 。
那么它在 Scala 中有对应的表达方法吗?显然在 Scala 中存在相同的问题 —— 在
任何 (类型或方法)有多个类型参数的场合 ,我们都可能需要表达这多个类型参数
之间的类似于函数式依赖的约束关系 ,并让编译器来对这些依赖关系进行检验 。理
想的情况是这种约束还能够与类型推演相结合——我们可能希望编译器能够根据已
经推演出的类型来推演出由这们所确定的其它类型 。
事实上 ,Haskell风格的函数式依赖关系在Scala中可以有很简单的表达方式 ,但不
知为何这种表达方式并未被提到过 。相反——我曾经见过有人声称用 Scala 来表达
函数式依赖是不可能的 ,或者说虽然可能 ,但由于类型推演的问题而并不实用 。更
让人吃惊的是 Scala 的新集合库的重要功能 (CanBuildFrom)其实就是这种表达
方式的一个非常好的实际案例... 奇怪的是甚至在 Type Classes as Objects and
Implicits(Olivera, Odersky and Moors, 2010)文献中也未曾被提及 。
可能人们早就注意到了 ,只是觉得太过平常而没有单独提出来的必要吧 。不管怎
样 ,我认为能够在两者之间建立联系是非常有用的 。下面我会用 Haskell wiki 上的
例子来做转换 。之后大家就会发现 CanBuildFrom 明显就是函数式依赖的实例 。
我们从 矩阵/向量/标量 相乘的例子开始 。这里我们想要表达“乘法结果的类型完全
由其参数的类型确定”这个事实 ,
Matrix * Matrix Matrix
Matrix * Vector Vector
Matrix * Int Matrix
Int * Matrix Matrix
Scala 中的函数式依赖 4
Shapeless 文献中译
这里 ,每一行有三个类型 ,前两个 (参数类型)确定第三个 (结果类型) 。我们将
这种关系直接表达成有三个类型参数的 trait ,然后用一些隐式定义来表
您可能关注的文档
- IYC亲手FUN化学成果报告.PDF
- JointDistribution联合分布函数-统计之都.PPT
- JRC4580双运算放大器.PDF
- Java程式处理例外状况的方式.PPT
- iStan於外伤患者处置TRM训练之运用-奇美医院.PPT
- JYC-18BZ型智能电磁炉功能说明书-Read.DOC
- K8智能空气环境监测仪通用型.PDF
- Kafka分区分配策略PartitionAssignmentStrategy-过往记忆.PDF
- KAIF4熔液结构的推断-上海有机化学研究所.PDF
- KB-IPA独立行政法人情报処理推进机构.PPT
- 2024_2025学年新教材高中物理第十二章电能能量守恒定律3实验:电池电动势和内阻的测量学案新人教版必修3.doc
- 2025版高考生物一轮复习第1章遗传因子的发现1孟德尔的豌豆杂交实验一教案新人教版必修2.doc
- 2024_2025学年高中英语单元综合检测Unit1ScienceandScientists含解析新.doc
- 湖南省长沙市2024年中考物理猜想卷四含解析.docx
- 2024_2025学年高中生物模块综合测评含解析新人教版选修3.docx
- 2024_2025学年高中物理第五章交变电流测评含解析新人教版选修3_2.docx
- 2024高考化学一轮复习专练17氯溴碘及其化合物含解析新人教版.doc
- 2024高考地理一轮复习考点2地球的宇宙环境及圈层结构练习含解析.doc
- 2024高考化学一轮复习第一部分考点42生命中的基础有机化学物质强化训练含解析.doc
- 2024高考地理一轮复习考点34旅游地理练习含解析.doc
文档评论(0)