level 5
j18943192179
楼主
代码如下:
(defparameter *test* '((1 2 3) (4 5 6)))
(nreverse *test*)
(setq *test* (cons '(7 8 9) *test*))
(nreverse *test*)
此时*test*的值为:((1 2 3)(4 5 6)(7 8 9))
但是当把后面三行写在一个函数里:
(defun paixu (initial final)
(nreverse initial)
(setq initial (cons final initial))
(nreverse initial))
此时*test*的值却是((4 5 6)(7 8 9)),但是函数的返回结果是正常的,不知道*test*的值怎么会这么奇怪。
2013年08月19日 14点08分
1
(defparameter *test* '((1 2 3) (4 5 6)))
(nreverse *test*)
(setq *test* (cons '(7 8 9) *test*))
(nreverse *test*)
此时*test*的值为:((1 2 3)(4 5 6)(7 8 9))
但是当把后面三行写在一个函数里:
(defun paixu (initial final)
(nreverse initial)
(setq initial (cons final initial))
(nreverse initial))
此时*test*的值却是((4 5 6)(7 8 9)),但是函数的返回结果是正常的,不知道*test*的值怎么会这么奇怪。