Macro NTH-VALUE

UP


Macro NTH-VALUE

Macro NTH-VALUE

構文

nth-value n form => object

引数と戻り値

n - 非負の整数。評価されます。
form - フォーム。下記の説明に従って評価されます。
object - オブジェクト

定義

nが評価され、そのつぎにformが評価され、 formによって返却されたn番目の値のみを返却します。 もしnformの返却数以上の場合は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)
       (y 32423489732)
       (a (nth-value 1 (floor x y)))
       (b (mod x y)))
  (values a b (= a b)))
=>  3332987528, 3332987528, true

副作用

なし。

影響

なし。

例外

なし。

参考

multiple-value-list, nth

備考

操作において、下記の関数は等しいと言えますが、 nth-valueは実装によってはより効率と言えます。 なぜなら、例えばコンス化することを回避できるからです。

(nth-value n form) == (nth n (multiple-value-list form))

TOP, Github