我需要一个在增量期间进行边界检查的
我可以使用
在这种情况下,我需要使用如下方式:
incf
函数:val := val + delta
if val >= 1.0
then return 1.0
else return val
我可以使用
incf
来编写这个代码:(defun incf-bounded(val delta)
(incf val delta)
(if (>= val 1.0) 1.0 val))
在这种情况下,我需要使用如下方式:
(setf x (incf-bounded x delta))
。但是,如果我想使用类似于(incf-bounded x delta)
的方式呢?也就是说,x
将被修改。该怎么写呢?
define-modify-macro
的使用,这很可能是你想在这里使用的。 - Joshua Taylorelse
行不应该是else val := val + delta
吗? - Joshua Taylor