以下是一个示例,展示了如何在计数器中使用setq
。您可以使用这种方法来计算程序的某个部分重复的次数。首先将一个变量设置为零;然后在程序重复自身时每次将该数字加一。为此,您需要一个用作计数器的变量,以及两个表达式:一个初始的setq
表达式,将计数器变量设置为零;和第二个setq
表达式,在每次评估时递增计数器。
(setq counter 0) ; 我们称之为初始化器。 (setq counter (+ counter 1)) ; 这是递增器。 counter ; 这是计数器。
(在‘;’之后的文本是注释。See 修改函数定义.)
如果您评估这些表达式中的第一个,即初始化器(setq counter 0)
,然后评估第三个表达式counter
,数字0
将显示在回显区域中。然后,如果您评估第二个表达式,即递增器(setq counter (+ counter 1))
,计数器将获得值1。因此,如果您再次评估counter
,数字1
将显示在回显区域中。每次评估第二个表达式时,计数器的值将递增。
当您评估递增器(setq counter (+ counter 1))
时,Lisp解释器首先评估最内层的列表;这是加法。为了评估此列表,它必须评估变量counter
和数字1
。当它评估变量counter
时,它会得到它的当前值。它将这个值和数字1
传递给+
,将它们相加。然后,总和作为内部列表的值返回,并传递给setq
,将变量counter
设置为这个新值。因此,变量counter
的值被更改。