Как реализованы библиотечные функции в Haskell

Я только начинаю изучать Haskell, и было бы очень полезно посмотреть, как реализованы функции Haskell. Мне удалось найти Standard Prelude по другому вопросу, но теперь меня интересует Data.List. Есть ли способ найти источник этих функций?

Очень хотелось бы увидеть перестановки и nub (и остальные, но эти для меня сейчас самые интересные).


person Mitch Phillipson    schedule 12.12.2011    source источник


Ответы (3)


Вот: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html

В более общем плане, если вы посмотрите на страницу документации для Data.List вы увидите ссылки «Источник» справа от сигнатур типов, которые приведут вас непосредственно к источнику этой функции.

Таким же образом вы можете найти исходный код для остальных стандартных библиотек и, по сути, почти для всего на Взлом.

person C. A. McCann    schedule 12.12.2011
comment
Я думаю, что был на этих сайтах сто раз и никогда не видел ссылку на источник. Спасибо! - person Mitch Phillipson; 12.12.2011
comment
Хорошо, что они ненавязчивы, но их удивительно легко пропустить! Это невероятно полезно. Еще один совет: списки каталогов включены, где документы с исходным кодом, поэтому вы можете просматривать список таким образом, а также просматривать модули, которые не экспортируются библиотекой публично (т. е. детали внутренней реализации). - person C. A. McCann; 12.12.2011
comment
Также обратите внимание, что вы можете использовать hoogle (haskell.org/hoogle), чтобы легко добраться до соответствующих страниц документации. . - person Jan Christiansen; 14.12.2011

Документация модуля Data.List находится здесь: http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html

И источник здесь: http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/Data-List.html

В GHCI вы можете сделать :browse Data.List, чтобы узнать больше об этом модуле. Обратите внимание, что основные определения списков и операции также находятся в базовых пакетах, например. GHC.Base, GHC.List.

person vis    schedule 12.12.2011

Другие общие ссылки не работали для меня, проверьте это

http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.List.html

Ссылка «Источник» находится в правом верхнем углу страницы.

Чтобы просмотреть реализацию любой функции, нажмите на нее.

person Vikramaditya Kukreja    schedule 23.09.2019