В порядке оффтопа, придумал такую штуку:
(
defun maphash-list (function-designator
hash-table)
"Map the hash, collect in a list"
(
let ((result
nil))
(
flet ((func-wrapper (key value)
(
push (
funcall function-designator key value)
result)))
(
maphash #'func-wrapper
hash-table))
result))
Вначале хотел, чтоб возвращался хэш с такими же ключами, как в оригинале, но с обработаными функцией значениями, но этот хэш потом как обрабатывать для вывода? Выйти из глубокой рекурсии мозга помог костыль "список + format", чего для локальных нужд вполне хватило, т.к. надо было получить дамп хэша:
(
format nil "~{~a~^, ~}"
(maphash-list #'(
lambda (key value)
(
format nil "~a => '~a'" key value))
my-hash)))