簡體   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