假设我将此代码发送给clisp解释器:
(值'a'b)
一个 ;
乙
现在我想记录这些信息(使用setf)并从结果中访问A和B. 我怎么能在以后访问这两个值? 我试过了:
(setf结果(值'a'b))
甲
它只存储'A而不是'B.我怎么能这样做?
答案 0 :(得分:3)
如您所见,lisp中的函数可以通过值表单返回多个值。如果要将值绑定到变量,可以使用multiple-value-bind。实施例
(multiple-value-bind (a b c) (values 1 2 3) (+ a b c))
1将绑定到a,2将绑定到b,3将绑定到c,因此评估表单的结果将为6.如果您尝试将值表单设置为var,则仅将使用第一个值。