Как реализуются библиотечные функции в Haskell
Я только начинаю изучать Haskell и было бы очень полезно посмотреть, как реализуются функции Haskell. Я смог найти стандартную прелюдию к другому вопросу, но теперь меня интересуют данные.Список. Есть ли способ найти источник этих функций?
Я бы очень хотел увидеть перестановки и nub (и все остальное, но это самое интересное для меня прямо сейчас).
2 ответов
вот вы идете: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html
в более общем плане, если вы посмотрите на страница документации для Data.List
вы увидите ссылки "источник" справа от сигнатур типа, которые приведут вас непосредственно к источнику для этой функции.
вы можете найти источник для остальных стандартных библиотек таким же образом и, фактически, почти все о Hackage.
документация данных.Модуль 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.Базы, с GHC.Список.