学習しているLisp(Scheme、Common Lispなど)を指定しなかったので、CommonLispを推測します。間違っている場合はコメントしてください。それに応じて編集します。
Lispではそのようなものはアソシエーションリストと呼ばれます。これは非常に一般的に使用されるため、それを可能にする便利な機能がいくつかあります。ただし、基本的には、ペアのリストにすぎません((key . value) ... )
。
カーネギーメロン大学の説明を確認することをお勧めします。これにより、関連付けリストの操作を簡単にするassoc
などの機能の概要がわかります。alist-cons
とても役に立ちました。
アソシエーションリストの問題は、一定時間の挿入がありますが、削除とルックアップは両方ともO(n)であるということです。したがって、速度が大きな懸念事項である場合は、実際のハッシュテーブルに目を向けることをお勧めします。
Common Lisp Cookの本には、これらについての良い説明があります。それらは、一定時間のランダムアクセスを可能にする実際の配列(ベクトルと呼ばれることもあります)に依存しています。アソシエーションリストとは異なり、これらはO(1)ルックアップを提供します。ただし、Lispは一般的にリストが得意なので、関連付けリストほど使いやすいものではありません。
注:Schemeの場合、コンパイラーがデフォルトでSRFI 1および69拡張機能を提供していない場合、これらの関数のほとんどはSRFI1および69拡張機能で提供される必要があります。