У меня есть хэш-таблица *h* такого вида:
item1 = '(:A a1 :B b1 :C c1)
item2 = '(:A a2 :B b2 :C c2)
то есть, ключи - список объектов, а значения - свойства объекта в виде plist. Далее, в программе такой код:
(defun foo (var)
(let* ((var1 (gethash var *h*))
(var2 (getf var1 :a)))
(тут какой-то код)))
(foo 'item1)
то есть, сперва я получаю список свойств item1, а потом из этого списка я хочу получить поле :a. В var1 всё хорошо: там содержится нужный список. а вот в var2 всегда nil. Более того, если выполнить в repl
(getf (gethash 'item1 *h*) :a)
, будет nil. Однако, если выполнить
, потом скопировать полученый список в repl, и выполнить (getf скопированный-список :a), то результат будет правильный (то есть a1)
В связи с этим 2 вопроса:
1) как получить нужное значение
2) как правильно хранить и загружать какие-то конфиги. не в json-е же их хранить.