Интересно, существует ли менее вербальный способ, чем использование цикла. В любом случае это работает для меня в 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))