2010-05-23 2 views
23

В Hackage есть много пакетов, некоторые из которых известны (например, HUnit) и некоторые менее известные (такие как AspectAG). Мне интересно, какой пакет вы думаете, что это скрытый камень, который заслуживает большего числа пользователей. Может быть, полезная структура данных, помощники для монадов, сетей, тестов, ...?Какой у вас любимый фильм "hidden gem" в Hackage?

Какой у вас любимый фильм "hidden gem" в Hackage?

+6

Должно быть сообщества вики, я думаю. – kennytm

+3

Релевантными могут быть также самые популярные пакеты 2010 года, в порядке, http://www.galois.com/~dons/hackage/april-2010/popularity.csv –

+0

@DonStewart 404 - Ссылка мертва. – drozzy

ответ

16

Олег Киселев Iteratee. Я до сих пор не понимаю, как это работает, но это спасло мою жизнь пару раз, когда мне нужно было что-то вроде быстрого чтения 60 000 файлов, и у меня не было времени выяснить, почему обычные подходы к доступу к файлу Haskell были так медленно.

Также Брайан О'Салливан Attoparsec, который по моему опыту работает намного лучше, чем Parsec, на таких вещах, как большие плоские базы данных.

И теперь вы можете combine the two.

Statistics (опять О'Салливана) было удобно, потому что я предпочел бы работать в Haskell, чем в R.

HXT и Criterion не являются «скрытые жемчужины», но, по моему мнению, они заслуживают того, чтобы более широко используются.

12

Vector - быстрые массивы упрощены (я не люблю Data.Array). Если бы я мог голосовать только за одного, это было бы прямо сейчас.

Lazy Small Check (также см. paper) для исчерпывающего тестирования.

Cereal - все общие структуры данных должны иметь двоичные и серийные экземпляры. Доверяйте компилятору сбросить мертвый код.

meldable-heap - Не получили его еще, но это пример того, как следует разрабатывать программное обеспечение!

Chart - Это было полезно для меня при создании диаграмм для моей бумаги и презентаций.

Atom - Я бы хотел, чтобы это было оправданием, но еще не получили его.

8

Некоторых недооцененные, прагматичные библиотеки, которые я использую довольно часто:

  • pcre-light (простое, быстрое согласование регулярного выражений)
  • mersenne-random-pure64 - быстрое, но чистые, случайные числа
  • xosd - X11 на экране дисплея
  • ChasingBottoms - Свойства теста для указания лени.
  • download-curl - простой, быстрый URL загрузки функции
  • gnuplot - Gnuplot глубинный рассеивающий слой
  • hscolour против colorize-haskell
  • tagsoup - разбор HTML, не думая
+0

Я знаю, что это сообщение устарело, но библиотека загрузки-скручивания БОЛЬШОЙ, мне не нравится писать утомительный код 'Network.HTTP', чтобы загрузить тело веб-страницы! – djhworld

3

предупреждаю, что это самореклама, но я думаю, что мой пакет заслуживает большего количества пользователей, чем я сам)

Итак, timeplot - инструмент для построения временных рядов из журналов. У этого есть немало особенностей, см. Обширный tutorial (много фотографий внутри).

Например, вы можете использовать его для просмотра эффекта супертяжелого фонового процесса на 25%, 50% и 90% квантилей вашего времени ответа; или посмотреть количество пользователей онлайн в течение дня.

Он разработан «по пути Unix»: вы производите произвольный журнал и записываете быстрый и грязный простой awk или perl-скрипт, который преобразует его в ввод для программы (состоящей из «событий»: импульсы дискретного значения , импульсы непрерывного значения и импульсы пуска/останова).

Это было очень полезно для анализа данных журнала, особенно для диагностики некоторых «инфраструктурных» проблем с производительностью: я рассматриваю графики активности системы, и я вижу, что выглядит не так, как должно выглядеть.

3

Мне нравится interlude - для тех случаев, когда эти черви «голова: неопределенные» сообщения просто не исчезнут!

4

Мне нравится don't библиотека:

main = don't $ do 
    name <- getLine 
    putStrLn $ "hello " ++ name 
+0

Это просто шутка? –

+1

Да, это была шутка, но ее не совсем бесполезно ... это похоже на комментирование блока кода. – Caleb

Смежные вопросы