dolist ってみた
dolist はリストから要素を 1 つ取り出して実行し、また 1 つ取り出して実行します。
これをリストの要素が無くなるまで繰り返します。
試しに auto-mode-alist の内容を見てみましょう。
(dolist (x auto-mode-alist) (message "%s" x))
これは次の while を使ったコードと等価です。
(let ((x) (xs auto-mode-alist)) (while (not (null xs)) (setq x (car xs) xs (cdr xs)) (message "%s" x)))
x が先頭の要素、xs が先頭の要素を除いたリストです。
dolist の例では while の例の xs が見当たりませんが、必要ないので書いていないだけで
dolist の第二要素の x と auto-mode-alist の間に xs を書くことができます。
つまり:
(dolist (x xs auto-mode-alist) (message "%s" x))
は、最初の dolist を使ったコードと全く同じです。
gnu の dolist の説明?がよく分からなかったので書いてみた。