9.4 算术 (Arithematic)
用来做加减的函数是 +
与 -
。两者皆接受任何数量的参数,包括没有参数,在没有参数的情况下返回 0
。(译注: -
在没有参数的情况下会报错,至少要一个参数)一个这样形式的表达式 (- n)
返回 -n
。一个这样形式的表达式
(- x y z)
等同于
(- (- x y) z)
有两个函数 1+
与 1-
,分别将参数加 1
与减 1
后返回。 1-
有一点误导,因为 (1- x)
返回 x-1
而不是 1-x
。
宏 incf
及 decf
分别递增与递减数字。这样形式的表达式 (incf x n)
类似于 (setf x (+ x n))
的效果,而 (decf x n)
类似于 (setf x (- x n))
的效果。这两个形式里,第二个参数皆是选择性给入的,缺省值为 1
。
用来做乘法的函数是 *
。接受任何数量的参数。没有参数时返回 1
。否则返回参数的乘积。
除法函数 /
至少要给一个参数。这样形式的调用 (/ n)
等同于 (/ 1 n)
,
> (/ 3)
1/3
而这样形式的调用
(/ x y z)
等同于
(/ (/ x y) z)
注意 -
与 /
两者在这方面的相似性。
当给定两个整数时, /
若第一个不是第二个的倍数时,会返回一个比值:
> (/ 365 12)
365/12
举例来说,如果你试着找出平均每一个月有多长,可能会有解释器在逗你玩的感觉。在这个情况下,你需要的是,对比值调用 float
,而不是对两个整数做 /
。
> (float 365/12)
30.416666
当前内容版权归 readthedocs 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 readthedocs .