Язык Haskell: О пользе и вреде лени: различия между версиями

Содержимое удалено Содержимое добавлено
→‎Когда Си лучше?: Нет источника, пояснил в < ! - - - - >
Строка 336:
== Когда Си лучше? ==
 
Конечно, не всё «цветочки да бабочки». У функциональных языков есть свои недостатки. Считается, что программы, написанные на функциональных языках программирования, работают существенно медленнее, нежели на императивных. Поэтому суть пользы и вреда лени в данном случае сформулируем так: «Программы пишутся быстрее, но работают они медленнее». <!-- Это прекрасный компромисс, поскольку человеко-часы существенно дороже часов работы компьютера! -->
<!-- Не согласен. Нет источника, к тому же лучше программист потратит лишний час на доработку программы, чем лишние секунды работы программы соберутся в лишние тысячи часов на миллионах компов. Теоритически, время компьютера ДОРОЖЕ времени программиста, но к сожалению на практике в коммерческих проектах в погоне за прибылью исходят из обратного предположения -->
 
Представленная искусная реализация функции быстрой сортировки на Си, придуманная [[w:Хоар, Чарльз Энтони Ричард|Хоаром]], безусловно, выигрывает по эффективности у реализации на Haskell (как по времени работы, так и по необходимой для вычислений памяти). Но код на Haskell существенно проще! Следует отметить, что обе реализации имеют сложность <math>O(n\log n)</math>, то есть время работы на списке (массиве) длины <math>n</math> растёт пропорционально <math>n\log n</math>, и в этом «асимптотическом смысле» обе реализации одинаково хороши.