Zipper (data structure) とは

ジッパーは、集合的なデータ構造を表現する技術であり、特に純粋に機能的なプログラミング言語において、構造を任意に横断してその内容を更新するプログラムを書くのに便利です。ジッパーは1997年にGérardHuetによって記述されました。これは、時にはアレイで使用されるギャップバッファ技術を含み、一般化しています。
ジッパー技術は、リスト、ツリー、および他の再帰的に定義されたデータ構造に適合させることができるという意味で一般的です。このような変更されたデータ構造は、構造が概念的にはツリーまたはリストであることを強調する「ジッパー付きツリー」または「ジッパー付きリスト」と呼ばれ、ジッパーは実装の詳細です。
ジッパー付きのツリーの一般人の説明は、親(通常はcd ..)に行く操作と、下に行く可能性(cdサブディレクトリ)を持つ通常のコンピュータファイルシステムです。ジッパーは、現在のパスへのポインターです。ジッパーは、(現在のデータ構造を変更する代わりに)編集操作から新しい、わずかに変更されたデータ構造が返されるデータ構造を(機能的に)変更するときに効率的です。