関数内で変数の名前を使用せずに、関数内からグローバル変数の値を永続的に変更する方法を知りたいです。
(defvar *test1* 5)
(defun inctest (x) (incf x))
(inctest *test1*) ;after it runs, *test1* is still 5, not 6
これによると:
関数に渡されたオブジェクトが変更可能で、関数内でそれを変更した場合、呼び出し元と呼び出し先の両方が同じオブジェクトを参照するため、変更は呼び出し元に表示されます。
それは私が上でやっていることではありませんか?