Возможность передавать функции туда-сюда очень хороши. Посмотрите на сигнатуры функций GSL, например -
https://www.gnu.org/software/gsl/doc/html/integration.htmlВообще, из всего джентельменского набора только алгебраические типы данных и ленивость не очень применимы. А так:
1. Кортежи удобны.
2. GC - очень в тему, можно не заморачиваться с памятью.
3. Immutable data - без undo/redo особой пользы нет, но и не мешает.
4. Передача функций как значений туда-сюда - отлично!
5. Классы типов - нормально (вот Ocaml'овские +. /. и т.д. - это achtung).
6. Отсутствие неявных преобразований типов - ну не мешает, где-то даже помогая.
7. Ленивые вычисления, в общем, не нужны - в вычмат. алгоритмах обычно люди даже не пытаются вычислять то, что потом может не понадобится.
————————-
Проблема в том, что Хаскельные "паттерны проектирования", aka Monoid/Functor/Applicative/Monad вообще непонятно как применять в вычмате. Строго говоря, компьютерная арифметика обладает коммутативностью, но не ассоциативностью, то есть, это какой-то антимоноид.
Кроме того, желательны изменяемые массивы с хорошим контролем. Но вот те же Клиновцы даже срезов не сделали.