--- cl.texi.~1.15.~ 2009-11-27 18:28:09.000000000 +1100 +++ cl.texi 2010-07-10 09:50:54.000000000 +1000 @@ -2476,22 +2476,33 @@ or @code{while}. @item for @var{var} being the hash-keys of @var{hash-table} -This clause iterates over the entries in @var{hash-table}. For each -hash table entry, @var{var} is bound to the entry's key. If you write -@samp{the hash-values} instead, @var{var} is bound to the values -of the entries. The clause may be followed by the additional -term @samp{using (hash-values @var{var2})} (where @code{hash-values} -is the opposite word of the word following @code{the}) to cause -@var{var} and @var{var2} to be bound to the two parts of each -hash table entry. +@itemx for @var{var} being the hash-values of @var{hash-table} +This clause iterates over the entries in @var{hash-table} with +@var{var} bound to each key, or value. A @samp{using} clause can bind +a second variable to the opposite part. + +@example +(loop for k being the hash-keys of h + using (hash-values v) + do + (message "key %S -> value %S" k v)) +@end example @item for @var{var} being the key-codes of @var{keymap} +@itemx for @var{var} being the key-bindings of @var{keymap} This clause iterates over the entries in @var{keymap}. The iteration does not enter nested keymaps but does enter inherited (parent) keymaps. -You can use @samp{the key-bindings} to access the commands bound to -the keys rather than the key codes, and you can add a @code{using} -clause to access both the codes and the bindings together. +A @code{using} clause can access both the codes and the bindings +together. + +@example +(loop for c being the key-codes of (current-local-map) + using (key-bindings b) + do + (message "key %S -> binding %S" c b)) +@end example + @item for @var{var} being the key-seqs of @var{keymap} This clause iterates over all key sequences defined by @var{keymap}