Классические книги алгоритмов (TAOCP, CLR) (и не такие классические, как fxtbook) полны императивных алгоритмов. Это наиболее очевидно с алгоритмами, реализация которых в значительной степени основана на массивах, таких как комбинаторная генерация (где в алгоритме используются как индекс массива, так и значение массива) или алгоритм объединения.
Анализ худшего случая этих алгоритмов зависит от доступа к массиву O (1). Если вы заменяете массивы массивными структурами, такими как Clojure, то обращения к массиву больше не являются O (1), а анализ сложности этих алгоритмов более недействителен.
Это подводит меня к следующим вопросам: чистое функциональное программирование, несовместимое с литературой классических алгоритмов?