kill-ring-yank-pointer 変数 ¶kill-ring-yank-pointer は変数であり、kill-ring も同様に変数です。他の Lisp
変数と同様に、参照先の値に束縛されることで、何らかの対象を指し示します。
したがって、キルリングの値が:
("some text" "a different piece of text" "yet more text")
また、kill-ring-yank-pointerは第2節を指しており、kill-ring-yank-pointerの値は次のとおりです:
("a different piece of text" "yet more text")
前章で説明した通り(リストの実装方法を参照)、コンピュータはkill-ringとkill-ring-yank-pointerの両方が指し示すテキストのコピーを2つ保持しているわけではありません。「別のテキスト部分」や「さらに別のテキスト部分」といった表現が重複して存在するわけではないのです。むしろ、2つのLisp変数は同じテキスト部分を指しています。以下に図を示します:
変数 kill-ring と変数 kill-ring-yank-pointer
はいずれもポインタである。しかし、キルリング自体は、通常、実際にそれが構成されている実体であるかのように記述される。kill-ring は、リストを指しているのではなく、それ自体がリストであるかのように語られる。逆に、kill-ring-yank-pointer はリストを指しているものとして語られる。
同じものについて語るこれら2つの表現は、一見すると紛らわしく感じられますが、よく考えれば納得がいきます。キルリングは一般的に、最近Emacsバッファから切り出された情報を保持するデータ構造全体のことと考えられています。一方、kill-ring-yank-pointerは、キルリングのどの部分に最初の要素(CAR)が挿入されるかを示す――つまり、そこを指し示す――役割を果たします。