Какую реализацию массива haskell использовать? AKA, каковы плюсы и минусы каждого

Что мне нужно? [неупорядоченный список]

  • ОЧЕНЬ простое распараллеливание
  • поддержка карт, фильтров и т. д.
  • возможность выполнять вычисления на основе массивов эффективно , например A = B + C, вроде как массивы Matlab.
  • Генерация SIMD-кода. Думаю, в ближайшем будущем об этом не может быть и речи, но я могу спросить:)
  • поддержка матриц должна быть как минимум, более высокие измерения сейчас имеют меньший приоритет.
  • возможность получить указатель на него и создайте его из указателя C.
  • Поддержка из других библиотек. IE, привязки к популярным математическим пакетам C, ввод-вывод на диск или изображения, если массивы 2D

Что я вижу?

  • Пакет массивов в haskell-platform. Это благословенный и может делать параллельные
  • Data.Vector. Имеет слияние петель, но не в платформе, так что его зрелость мне неизвестна.
  • пакет repa, предоставленный командой DPH, но не работает на сегодняшний день ни с одним стабильным ghc .
  • Много вариантов уровня поддержки реализаций массивов. Например, не кажется простым способом выгрузить 2D-вектор в файл изображения. IOW, сообщество haskell, по-видимому, не остановилось на реализации массива.

Так что, пожалуйста, помогите мне выбрать.

РЕДАКТИРОВАТЬ A = B + C относится к поэлементному сложению, а не к объединению списков

12
задан Community 23 May 2017 в 11:47
поделиться