Немного потрахавшись, поставил на Мак Haskell, чтобы понять, с чем его едят. Удивлен скоростью. Эталоном скорости в интерактивном режиме для меня всегда был J. Но тут Хаскель обскакал.
Факториал.
Хаскель (ghci):
let { f 1 = 1 ; f n = n * f(n-1) }
J:
f =: */@(>:@i.), хотя значительнее нагляднее просто */1+i.10000x, подставляя нужное число.
На тысяче разницы не видно.
На десяти тысяч J чуть запинается, а Хаскель -- нет.
На ста тысячах J пыхтел минут 5, а Хаскель вернул секунд за 30.
Но это, конечно, к языку не относится. На самом деле мне интересно, насколько на хаскеле удобнее программировать на типах, а то про Скалу совершенно справедливо
пишут, что некоторые простые вещи часто становятся очень сложными.