2
在此代碼中,dolist將x綁定到符號'foo和'bar。dolist將參數綁定到符號
(dolist (x '(foo bar))
(print (symbolp x) t))
這是一個問題,如果我想使用foo和bar的值,比如:
(dolist (x '(foo bar))
(print x t))
怎麼去解決呢?
在此代碼中,dolist將x綁定到符號'foo和'bar。dolist將參數綁定到符號
(dolist (x '(foo bar))
(print (symbolp x) t))
這是一個問題,如果我想使用foo和bar的值,比如:
(dolist (x '(foo bar))
(print x t))
怎麼去解決呢?
x
被綁定到符號foo
和bar
因爲'(foo bar)
是包含符號foo
和bar
列表。如果您想要一個包含變量foo
和bar
的值的列表,您可以使用(list foo bar)
。
編譯時是否已知'foo'和'bar'的值是否與'dolist'完全無關,因爲'LIST'參數在運行時纔會被評估。當然,你可以在不同的地方寫一個破碎的宏。 – Dmitry