> -- Geniepro писал(а):
> нет ни слова про необходимость в машинной эффективности реализации алгоритмов. Зачем требовать этого в обучении, да ещё и в школе?
А какой смысл в алгоритмах, без оглядки на производительность?
Ну вот скажем реализации сортировки. Их много. Реализаций. Пузырек, шейкер, слияние, квиксорт и другие. Так вот, как объяснить какой смысл в квиксорте, если оно в реализации будет тормозить сильнее чем сортировка слиянием? Т.е. получится не наглядно.

С другой стороны, если залезть скажем в ST, то всё сразу станет хорошо, и квиксорт будет реально квик. Но пурист скорчит рожу, ибо не слишком то это и чисто. С другой стороны, в ST вводится пара лишних сущностей, которые могут на самом деле отвлечь от алгоритмики. А могут и не отвлечь. Тут надо попробовать на самом деле. Никак руки не дойдут.

Вообще, тут ФП по сравнению с ИЯ выступает в те же отношения, что и структурное программирование vs программирование с goto, Ибо с последним некоторые алгоритмы записываются проще, и реализуются эффективней. С другой стороны, в структурном программировании больше контроля кода. Инвариантов больше. В ФП инвариантов ещё больше. Контролировать код намного проще. Но всё имеет свою цену.