multiple-value-bind丢弃第一个值

时间:2014-04-26 23:52:46

标签: common-lisp

在下面的代码中,我只想要r。

(let* ((frac  (multiple-value-bind (f r)  (floor amt  100) r)))
..use frac..)

我收到编译警告说未使用的变量f。

是否有一种惯用的写作方式?

2 个答案:

答案 0 :(得分:9)

declare ignore在这种情况下通常很有用,例如:

(multiple-value-bind (_ frac)  (floor amt 100)
  (declare (ignore _))
  ; use frac)

答案 1 :(得分:6)

NTH-VALUE允许您选择表单的返回值之一。这将与您的代码段相似:

(let* ((frac (nth-value 1 (floor amt 100))))
  ...)