Macro NTH-VALUE
nth-value
n form => object
n - 非負の整数。評価されます。
form - フォーム。下記の説明に従って評価されます。
object - オブジェクト
nが評価され、そのつぎにformが評価され、 formによって返却されたn番目の値のみを返却します。 もしnがformの返却数以上の場合はnil
が返却されます。
nth-value 0 (values 'a 'b)) => A
(nth-value 1 (values 'a 'b)) => B
(nth-value 2 (values 'a 'b)) => NIL
(let* ((x 83927472397238947423879243432432432)
(32423489732)
(y nth-value 1 (floor x y)))
(a (mod x y)))
(b (values a b (= a b)))
(=> 3332987528, 3332987528, true
なし。
なし。
なし。
操作において、下記の関数は等しいと言えますが、 nth-value
は実装によってはより効率と言えます。 なぜなら、例えばコンス化することを回避できるからです。
nth-value n form) == (nth n (multiple-value-list form)) (