Я пытался изменить хэш-таблицу с помощью следующего кодаИзменение хэш-таблицы в Common Lisp и пусть
(let ((alist '(gethash key *hash-table*)))
(setf alist (cons 'key 'weight)))
, но проблема в том, что она фактически не изменить хэш-таблицу (также отметим, что
(let ((alist (gethash key *hash-table*)))
(setf alist (cons 'key 'weight)))
не работает, либо, в то время как следующий код работает.
(setf (gethash key *hash-table*) (cons 'key 'weight)))
Я не могу понять, почему это работает, а другое не работает. Это полезно (за пределами этого фрагмента кода), потому что (я предполагаю), поэтому я не могу запустить функцию как
(alist-initialize (gethash key *hash-table*))
с определением бытия:
(defun alist-initialize (alist)
(setf alist (cons 'a 'b))
В пример изменения 5 до 2 действительно полезно, спасибо. – user124577