Как реализованы библиотечные функции в Haskell - PullRequest
11 голосов
/ 12 декабря 2011

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

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

Ответы [ 2 ]

24 голосов
/ 12 декабря 2011

А вот и вы: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html

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

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

8 голосов
/ 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.

...