[英]What is GHC.Exts, and how were its contents chosen?
Haskell标准库中的GHC.Exts模块声称它
是获得GHC特定扩展的批准方式。
如果这是真的,它解释了包含特定于实现的常量,例如表示元组的最大大小的常量和(可能)非便携式调试函数 。
但是,它没有解释为什么sortWith
在这个模块中。 它的实现看起来像普通的,可移植的Haskell给我。 我希望能看到它,例如Data.List和Data.Sequence。
我似乎误解了GHC.Exts是什么,我不理解其出口集合背后的基本逻辑,或者它有一些历史原因它出口大杂烩。
那么, 什么是GHC.Exts for ? 为什么它会出口这种奇怪的混合物呢?
这些函数和Down
newtype用于语法扩展: 通用(SQL-Like)列表 -XTransformListComp
,使用-XTransformListComp
启用。
此扩展程序引入了与这些功能对应的关键字:
有三个新关键字:
group
,by
和using
。 (函数sortWith
不是关键字;它是由GHC.Exts
导出的普通函数。)
这些函数正在列表中,但它们实际上属于扩展( GHC.Exts
是扩展的主页)。
GHC.Exts
出口各种各样的东西的原因是因为有各种各样的扩展。
如果您想了解更多信息,请参阅用户指南页面 - 更多信息,请参阅Phil Wadler和Simon Peyton Jones撰写的论文 。 这实际上非常令人兴奋,这是用户指南页面中的一个例子:
我截断它,但你可以说:
[ .. | (name, dept, salary) <- employees
, then group by dept
, then sortWith by (sum salary)
, then take 5 ]
另一个例子:
output = [x| y <- [1..5], x <- "hello"
, then group using inits]
产量:
["","h","he","hel","hell","hello","helloh","hellohe","hellohel","hellohell","hellohello","hellohelloh",...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.