Подтвердить что ты не робот

Обзор библиотек Haskell и их качество

Я хочу использовать Haskell в производстве. В нем много либраций, но не все из них стабильны, готовы к использованию и хорошо развиты. Некоторые библиотеки с интересными концепциями имеют экспериментальный статус. Многие библиотеки все еще находятся в младших версиях (например, 0.0.1). Некоторые из них просто отказались. Хакеры слишком велики, чтобы контролировать их, поэтому мне нужен краткий фрагмент состояния текущих библиотек, их перспективы и пригодность для использования.

Я понимаю, что вопрос очень широк, но эта информация будет кому-то полезной. Здесь мы можем собирать информацию по частям, а затем использовать ее для справки.

Итак, какие библиотеки я могу использовать для:

  • Быстрые массивы, способные обрабатывать миллионы элементов
  • Быстрые и мощные карты (возможно, Data.Map?)
  • Быстрые, общие и удобные деревья
  • Очереди, hashtables
  • Регулярные выражения
  • Конечные конечные машины
  • Нейронные сети, генетические алгоритмы
  • Математические вычисления
  • Физика (которая может использоваться в разработке игр)
  • GUI
  • Обработка изображений (на самом деле у нас есть различные форматы изображений)
  • Работа с базами данных (возможно, ORM или некоторые DSL для генерации SQL)
  • Функциональное реактивное программирование
  • привязки OpenGL (да, HOpenGL хорош), привязки OpenAL и OpenCL
  • Анализ (Parsec отлично, я думаю)
  • Многопоточное и параллельное программирование
  • Сеть
  • Многоцелевые игровые движки
  • Что-то еще?

Что также интересно иметь инструменты для:

  • Тестирование (QuickCheck)
  • Ведение журнала (возможно, hslogger)
  • Профилирование
  • Отладка

Здесь ссылки на похожие темы:

Другие ссылки

Спасибо.

4b9b3361

Ответ 1

Я оставлю это как сообщество wiki - другие люди, пожалуйста, не стесняйтесь добавлять элементы или комментарии в достаточно сжатой форме.

  • Быстрые массивы, способные обрабатывать миллионы элементов: Repa, Vector.
  • Быстрые и мощные карты: containers и unordered-containers.
  • Быстрые, общие и удобные деревья:
  • Очереди, hashtables: см. пакет hashtables для самого последнего и самого большого.
  • Регулярные выражения: regex-pcre, regex-tdfa
  • Конечные автоматы: fsmActions - но он имеет версию 0.4.3 alpha; fst - но не совсем FSM. В некоторых случаях FRP будет полезен вместо истинного FSM.
  • Нейронные сети, генетические алгоритмы: HNN хорошо установлен. Что касается GA, у нас действительно есть структура (GA) и что-то, что выглядит более полным (hgalib), но я не внимательно его изучил.
  • Математические вычисления: hmatrix
  • Физика: dimensional.
  • GUI: GTK работает хорошо. Я понимаю, что wxhaskell генерирует больше вопросов на душу населения, но это неформальное впечатление.
  • Обработка изображений: анализ? Сочные пиксели и JuicyPixels-Repa.
  • Нет, обработка изображений! CV, Friday, yarr
  • Работа с базами данных: рассмотрите использование оберток persistent-*, а также посмотрите на HDBC. PostgreSQL является стабильным. Для Кассандры их несколько, но рассмотрим cql.
  • Функциональное реактивное программирование: Reactive-banana, netwire
  • привязки OpenGL: OpenGL, GL.
  • Разбор: Parsec, attoparsec, polyparse, frisby.
  • Многопоточное и параллельное программирование - см. parallel и Control.Concurrency. monad-par является относительно новым, но часто легче рассуждать, чем базовая параллельная библиотека. См. Также async для параллельного ввода-вывода.
  • Сеть - зависит. Network с blaze-builder, cereal, или binary. Также рассмотрите network- {conduit, enumerator, pipes}. Существует также несколько оберток клиентов и серверов.
  • Многоцелевые игровые движки: для обучения? gloss. В противном случае вам, вероятно, придется сворачивать свои собственные, но использовать OpenGL, GLUT, GTK, FRP, привязки ogre, SDL и, возможно, FunGEn если он вернулся на дорожку.
  • Управление конфигурацией: configurator, config-ini.
  • Процесс XML: HaXml, HXT, xml-conduit - хорошие, стабильные и мощные библиотеки.

Инструменты:

Вопросы, относящиеся: