更改 let 函数中定义的变量
Change variable defined in let function
给定以下 let 函数:
(let ((foo (list a b c d)))
foo)
如何修改列表 foo?
(let ((foo (list a b c d)))
;some code
foo)
所以 returned foo 看起来像 eks: '(some new list) or (a b modified d)
我试过(设置)但 foo 仍将 return 作为原始列表。
您可以使用 setf
修改列表中的特定元素。
(let ((foo (list 'a 'b 'c 'd)))
(setf (third foo) 'modified)
foo)
这将 return (a b modified d)
。
或者如果你想替换整个变量,你可以直接赋值给它 setq
:
(let ((foo (list 'a 'b 'c 'd)))
(setq foo (list 'some 'new 'list))
foo)
不能对词法变量使用 set
,只能对特殊变量使用。
给定以下 let 函数:
(let ((foo (list a b c d)))
foo)
如何修改列表 foo?
(let ((foo (list a b c d)))
;some code
foo)
所以 returned foo 看起来像 eks: '(some new list) or (a b modified d)
我试过(设置)但 foo 仍将 return 作为原始列表。
您可以使用 setf
修改列表中的特定元素。
(let ((foo (list 'a 'b 'c 'd)))
(setf (third foo) 'modified)
foo)
这将 return (a b modified d)
。
或者如果你想替换整个变量,你可以直接赋值给它 setq
:
(let ((foo (list 'a 'b 'c 'd)))
(setq foo (list 'some 'new 'list))
foo)
不能对词法变量使用 set
,只能对特殊变量使用。