Какой ваш любимый пакет "скрытых драгоценных камней" на Hackage?
В Hackage есть много пакетов, некоторые хорошо известные (такие как HUnit) и некоторые менее известные (такие как AspectAG). Мне интересно, какой пакет вы считаете скрытой жемчужиной, которая заслуживает большего количества пользователей. Может быть, полезная структура данных, помощники для монад, сети, тестирования, ...?
Какой ваш любимый пакет "скрытых драгоценных камней" на Hackage?
6 ответов
Итератор Олега Киселева. Я до сих пор не совсем понимаю, как это работает, но это спасло мне жизнь пару раз, когда мне нужно было что-то вроде быстрого чтения 60000 файлов, и у меня не было времени выяснить, почему обычные подходы к доступу к файлам на Haskell были так медленно.
Также Attoparsec Брайана О'Салливана, который, по моему опыту, работает намного лучше, чем Parsec, в таких вещах, как большие базы данных с плоскими файлами.
И теперь вы можете объединить два.
Vector-space Конала Эллиотта очень хорошо упаковывает множество функций линейной алгебры, а также немного приблизил меня к тому, чтобы чувствовать себя комфортно с семействами типов.
Статистика (снова О'Салливан) была полезна, потому что я предпочел бы работать в Хаскеле, чем в Р.
HXT и Criterion не являются "скрытыми драгоценными камнями", но, по моему мнению, они заслуживают более широкого использования.
Вектор - быстрые массивы стали проще (мне не нравится Data.Array). Если бы я мог голосовать только за одного, это было бы прямо сейчас.
Lazy Small Check (также см. Статью) для исчерпывающего тестирования.
Зерновые - все общие структуры данных должны иметь экземпляры Binary и Serialize. Доверьтесь компилятору, чтобы сбросить мертвый код.
meldable-heap - еще не пользовался им, но это пример того, как следует разрабатывать программное обеспечение!
Диаграмма - это было полезно для меня при построении диаграмм для моей бумаги и презентаций.
Атом - я хотел бы использовать его как предлог, но пока не нашел.
Некоторые недооцененные, прагматичные библиотеки, которые я использую довольно часто:
- pcre-light (простое, быстрое сопоставление регулярных выражений)
- mersenne-random-pure64 - быстрые, но чистые случайные числа
- xosd - X11 на экране
- ChasingBottoms - проверка свойств для определения лени.
- download-curl - простые, быстрые функции загрузки URL
- gnuplot - gnuplot dsl
- hscolour vs colorize-haskell
- Tagsoup - парсинг HTML, не задумываясь
Мне нравится не библиотека:
main = don't $ do
name <- getLine
putStrLn $ "hello " ++ name
Я предупреждаю, что это самореклама, но я думаю, что мой пакет заслуживает большего количества пользователей, чем только я сам:)
Итак, timeplot - это инструмент для построения временных рядов из логов. Он имеет довольно много функций, см. Обширное руководство (много фото внутри).
Например, вы можете использовать его, чтобы посмотреть на эффект тяжелого фонового процесса на квантили 25%, 50% и 90% времени вашего ответа; или посмотрите на количество пользователей онлайн в течение дня.
Он спроектирован "в стиле Unix": вы берете произвольный журнал и пишете простой и понятный скрипт awk или perl, который преобразует его во входные данные для программы (состоящие из "событий": импульсы дискретного значения, импульсы непрерывного значения и запуск / остановка импульсов).
Для меня это было очень полезно при анализе данных журналов, особенно для диагностики определенных "инфраструктурных" проблем с производительностью: я смотрю на графики активности системы и вижу, что выглядит не так, как это должно выглядеть.
Мне нравится интерлюдия - когда эти проклятые сообщения "голова: неопределено" просто не исчезнут!