古典的なアルゴリズムの本 (TAOCP、CLR) (およびfxtbookなどのそれほど古典的ではない本) は、命令型アルゴリズムでいっぱいです。これは、組み合わせ生成 (アルゴリズムで配列インデックスと配列値の両方が使用される) や共用体検索アルゴリズムなど、実装が配列に大きく基づいているアルゴリズムで最も明白です。
これらのアルゴリズムの最悪の場合の複雑さの分析は、O(1) である配列アクセスに依存します。Clojure のように、配列を配列っぽい永続構造に置き換えると、配列アクセスは O(1) ではなくなり、それらのアルゴリズムの複雑さの分析は有効ではなくなります。
これは私に次の質問をもたらします: 純粋な関数型プログラミングは古典的なアルゴリズムの文献と互換性がありませんか?