[英]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.