Интересно, есть ли менее подробный способом, чем с помощью цикла. Во всяком случае, это работает для меня в CLISP:
(loop for key being the hash-keys of *my-hash* collect key)
Я видел, как другие используют maphash
, но это включает в себя накопление каждого ключа в список. Помимо того, что это более сложно, чем использование цикла, он также приводит к побочному эффекту, которого я стараюсь избегать, когда могу — я предпочитаю функциональное программирование, насколько это возможно :)
Есть ли что-нибудь предопределенное для этой общей задачи? , хотя и зависит от реализации?
(defun hash-keys (hash-table)
(loop for key being the hash-keys of hash-table collect key))