Created
December 7, 2016 08:46
-
-
Save zhouqiang-cl/b80c19d3c726987c79fe91724039ecea to your computer and use it in GitHub Desktop.
common lisp 的宏 DEFPARAMETER, DEFVAR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
语法 | |
defparameter name initial-value [documentation] => name | |
defvar name [initial-value [documentation]] => name | |
参数和值 | |
name --- 一个 symbol, 不会被求值 | |
initial-value --- 一个 form, 如果在 defparameter 中, 会被求值. 如果在 defvar 中,只有在 name 没有被绑定的时候被求值. | |
documentation --- 一个 string, 不会被求值 | |
描述 | |
defparameter 和 defvar 将 name 变成动态变量. | |
defparameter 无条件的将 initial-value 的值赋给 name. | |
defvar 只有在 name 没有绑定的时候把 initial-value 的值赋给 name. | |
如果 initial-value 没有被提供, 如果 name 之前被绑定了,那它继续是之前的值. 如果没有被绑定, 那仍然没有被绑定 | |
如果 documentation 提供了, 则doc string有了。 | |
代码 | |
* (defparameter *p* 1) | |
*P* | |
* (setq *p* 2) | |
2 | |
* (defvar *v* 1) | |
*V* | |
* *v* | |
1 | |
* *p* | |
2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment