Скорость обработки чисел в Haskell (или, точнее, в GHC) приближается к скорости C ++, но немного отстает.Однако это, конечно, не страшно, и преимущества Хаскелла в параллелизме могут стать важными.То есть, если вы сначала напишите это прямо на Haskell, есть большая вероятность, что будет легко реорганизовать его для параллельной работы сейчас или в будущем.Это не так верно для C ++.
Пакет 'vector' (в Hackage) был бы хорошим выбором для массивов, подходящих для обработки чисел.Он поддерживает изменяемые массивы в случае необходимости такого подхода.Тем не менее, если вы готовы пойти еще дальше, и ваш алгоритм может быть распараллелен, вы можете посмотреть на пакет 'repa', а для максимальной производительности на GPU посмотрите на 'Accelerate' (которыйработает, но все еще относится к категории экспериментальных).
Сбои, о которых вы упомянули, звучат так, будто они могут указывать на некоторую сложность вашей проблемы.У Haskell хорошо получается управлять сложностью ... ну, ничего.Так что, если проблема сложная, то Haskell будет вам очень полезен.
Интерфейс сторонней функции в Haskell хорошо спроектирован, хотя вам потребуется написать клей C между Haskell и C ++.Итак, это еще один вариант для сокращения вашего номера.
Для веб-интерфейса посмотрите на 'yesod', который видит очень активную разработку и рекламирует себя как выполняющий RESTful.