GHC
GHC是Haskell语言的主要编译器,支持众多语言扩展,如PolyKinds、DataKinds、TypeFamilies等,是Haskell生态的核心工具。
时间轴 (近 90 天)
Haskell的运行时系统(RTS)是GHC编译程序背后的执行引擎,负责调度绿色线程、管理分代垃圾回收以及执行惰性求值。
启用DataKinds扩展后,每个数据类型会自动将其值构造器提升为类型构造器,并赋予它们Kind;例如data Bool = True | False会生成类型'True和'False(Kind为Bool)。
在ghci中,:kind命令(可简写为:k)用于查询类型的Kind,例如:k Int返回Int :: *。
在较新版本的GHC中,*已被重命名为Type,并可通过Data.Kind模块导入。
TypeApplications扩展允许在表达式层面显式指定类型参数(如read @Int)。
GHC的PolyKinds扩展允许类型变量拥有多态Kind,使得Proxy等类型可以适配任意Kind。
当为Functor定义实例时,编译器会检查目标类型的Kind是否为* -> *;如果传入Kind为*的类型(如Int),编译器会报错。
TypeFamilies扩展允许定义类型级函数,分为封闭型和开放型两种;开放型类型族可在多个模块中增量定义实例。
目前关于 GHC 是否会以其他形式重启、是否永久停办,尚无明确信息。
过去十年,GHC 的赞助商包括 Google、Meta、Apple、Microsoft 等巨头。
还有 1 条时间轴事件
全部知识事实 (10)
Haskell的运行时系统(RTS)是GHC编译程序背后的执行引擎,负责调度绿色线程、管理分代垃圾回收以及执行惰性求值。
50%待验证GHC的PolyKinds扩展允许类型变量拥有多态Kind,使得Proxy等类型可以适配任意Kind。
50%待验证当为Functor定义实例时,编译器会检查目标类型的Kind是否为* -> *;如果传入Kind为*的类型(如Int),编译器会报错。
50%待验证启用DataKinds扩展后,每个数据类型会自动将其值构造器提升为类型构造器,并赋予它们Kind;例如data Bool = True | False会生成类型'True和'False(Kind为Bool)。
50%待验证TypeFamilies扩展允许定义类型级函数,分为封闭型和开放型两种;开放型类型族可在多个模块中增量定义实例。
50%待验证在较新版本的GHC中,*已被重命名为Type,并可通过Data.Kind模块导入。
50%待验证TypeApplications扩展允许在表达式层面显式指定类型参数(如read @Int)。
50%待验证在ghci中,:kind命令(可简写为:k)用于查询类型的Kind,例如:k Int返回Int :: *。
50%待验证过去十年,GHC 的赞助商包括 Google、Meta、Apple、Microsoft 等巨头。
50%待验证GHC 的取消可能对企业招聘管道、学生职业规划、女性技术社群网络产生负面影响。
50%