回答:
一般に、ジッパーは穴の開いたデータ構造です。ジッパーはデータ構造のトラバース/操作に使用され、穴はトラバースの現在の焦点に対応します。通常、検討中のデータ構造の要素もあるため、(リスト)ジッパーとリスト、または(ツリー)ジッパーとツリーがあります。ジッパーにより、プログラマーはデータ構造内を効率的に移動でき、フォーカスされている要素を置き換えることさえできます。ジッパーとフォーカスの要素のペアは、要素を穴のフォーカスに配置すると元のデータ構造が得られるという制約を満たします。
ジッパーは、任意の帰納的データ型に一般化できます。この概念は、タイプインデックス付きの方法で定義できます(タイプインデックス付きデータ型を参照)。それらはまた、データ構造の導関数の考えに関連していて、カテゴリー理論の観点から研究されました。
ジッパーは一般に2つのものです。それは、穴のある構造体であり、構造体のどこにいるかを表すフォーカスであり、その焦点に到達した方法を記録するパスと一緒になります。(このパスはLYAHのパンくずリストです。)
パスは、実際に構造に変更を適用する方法です:「下に移動し、左に移動し、値を増やします」。繰り返し(「上がる」を適用することによってgo_up
ではユエの論文この時点で)、あなたはあなたの手順をたどることができ、元の構造の新しい、変異し、コピーで終わります。
実際、これらは他の構造に一般化できます。