Huet の元の論文とClojure の実装を比較し、なぜ変更が加えられたのかを解明しようとしています。私は Clojure の初心者なので、Clojure コードの解釈が間違っている場合は、訂正してください。
Huet の論文では、パスのタイプは (in Ocaml)Top | Node of tree list * path * tree list;;
です。Clojure には、2 つの追加フィールドpnodes
とchanged?
. これらのフィールドの目的は何ですか? Huet のタイプの 1 番目と 3 番目のエントリに対応し、それが 2 番目であるl
と信じるのは正しいですか?r
ppath
Huet のジッパーは全体でリンクされたリストを使用します (ジッパーが操作するデータ構造ではなく、Loc 型自体について話していることに注意してください) 一方でl
、Clojure の実装ではベクトルを使用する場所もあります。変更の理由と、Clojure 実装の時間の複雑さへの影響は何ですか?