gpt4 book ai didi

haskell - 我应该首先尝试学习哪些 GHC 类型系统扩展?

转载 作者:行者123 更新时间:2023-12-04 14:13:10 25 4
gpt4 key购买 nike

GHC 有一个完整的类型系统扩展动物园:多参数类型类、函数依赖关系、rank-n 多态性、存在类型、GADT、类型族、作用域类型变量等。哪些可能最容易首先学习?此外,这些功能是否以某种方式结合在一起,或者它们都是非常独立的想法,可用于完全不同的目的?

最佳答案

早期学习的好方法是ScopedTypeVariables ,因为它们对于调试函数中的类型问题非常有用。当我遇到令人费解的类型错误时,我会在函数中的每个表达式上临时添加类型声明。 (通常你需要分解一些表达式来查看真正发生了什么。)这通常可以帮助我确定哪个表达式的类型与我预期的不同。
TypeFamiliesMultiParamTypeClasses 更强大,所以你真的不需要后者。使用类型族时,通常需要启用 FlexibleContextsFlexibleInstances同样,这就是您只需花一个价格就能学会的三个 pragma。 FunctionalDependencies一般与 MultiParamTypeClasses 一起使用,所以这是你现在可以忽略的一个。

GHC 非常擅长告诉您何时需要启用 Rank2TypesRankNTypes ,因此您可以推迟对这些内容的更多了解,直到稍后再了解。

这些是我要开始的。

编辑:删除了关于避免 StandaloneDeriving 的评论. (我在考虑孤儿实例。)

关于haskell - 我应该首先尝试学习哪些 GHC 类型系统扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22793868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com