繁体   English   中英

什么是GHC.Exts,它的内容是如何选择的?

[英]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启用。

此扩展程序引入了与这些功能对应的关键字:

有三个新关键字: groupbyusing (函数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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM