我一直在試圖修改一個哈希表,下面的代碼修改哈希表中的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 2014-10-06 02:59:43