Common Lisp: получение всех ключей заданной хеш-таблицы в виде списка

Интересно, есть ли менее подробный способом, чем с помощью цикла. Во всяком случае, это работает для меня в 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))
20
задан Antonio Bonifati 'Farmboy' 15 March 2012 в 12:37
поделиться