Что мне нужно? [неупорядоченный список]
- ОЧЕНЬ простая распараллеливание
- поддержка карты, фильтра и т. д.
- способность выполнять вычисления на основе массивов эффективно, например, A=B+C, вроде массивов Matlab.
- Генерация SIMD-кода. Я думаю, что в ближайшем будущем об этом не может быть и речи, но, эй, я могу спросить :)
- поддержка матриц должна быть как минимум, более высокие размерности сейчас менее приоритетны.
- возможность получить указатель на него и создать его из указателя C.
- Поддержка других библиотек. IE, привязки к популярным математическим пакетам C, ввод-вывод на диск или изображения, если массивы двумерные.
Что я вижу?
- Пакет массива на платформе haskell. Это благословенный и может делать параллель
- Данные.Вектор. Имеет слияние петель, но не в платформе, поэтому его зрелость мне неизвестна.
- repa, предоставленный командой DPH, но не работает ни с одной стабильной версией ghc сегодня.
- Множество вариаций уровня поддержки реализаций массивов. Например, похоже не существует простого способа выгрузить 2D-вектор в файл изображения. IOW, сообщество Haskell, по-видимому, не остановилось на реализации массива.
Так что, пожалуйста, помогите мне выбрать.
EDIT A=B+C относится к добавлению элементов, а не к объединению списков
A=B+Cможет иметь смысл в ненумерованном списке, если только+не являетсяunion. - person Dan Burton   schedule 05.03.2011A=B+Cотносился к числовому сложению, а не к конкатенации. Итак, в Data.Vector это будетzipWith (+). - person Thomas M. DuBuisson   schedule 10.03.2011zipWithработает, соединяя элемент 1 первого списка с элементом 1 второго списка. Другими словами, порядок элементов в списках имеет значение. Когда список неупорядочен, это означает, что порядок элементов не имеет значения, поэтому я сказал, чтоA=B+Cв таком сценарии бессмысленно. (если есть 1-й элемент, то он произвольный, так как порядок списка ничего не значит) - person Dan Burton   schedule 10.03.2011[a, b, c] + [x, y, z] --> [a+x, b+y, c+z], тоzipWith- это именно то, что нужно. Я думаю, что мы спорим, не соглашаясь, какая операция желательна. - person Thomas M. DuBuisson   schedule 10.03.2011