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