Здравствуйте, Pavel Dvorkin, Вы писали:
PD>В этом смысле — мб, и да, если знать Хаскель, конечно. Но меня вообще-то больше интересует эффективность его выполнения
Ключевым моментом, которого пока не касались в этой дискуссии, является высокоуровневая оптимизация, про которую никакой ассемблер не знает. Например, в Хаскелле есть дефорестация (list fusion). Вася взял список, применил к его элементам функцию f, получив другой список:
vasja lst = map f lst
Петя взял васин код, и поэлементно применил к возвращаемому этим кодом списку функцию g
petja lst = map g (vasja lst)
Оля взяла петин код, поэлементно применила к возвращаемому этим кодом списку функцию h
olja lst = map h (petja lst)
Компилятор Хаскеля взял эту конструкцию с кучей промежуточных списков и оптимизировал в
olja_oplimized lst = map (h . g. f) lst
Без единого промежуточного списка.