Next: , Previous: multiple-values-limit, Up: Data and Control Flow Dictionary


5.3.56 nth-value [Macro]

nth-value n form => object

Arguments and Values::

n—a non-negative integer; evaluated.

form—a form; evaluated as described below.

object—an object.

Description::

Evaluates n and then form, returning as its only value the nth value yielded by form, or nil if n is greater than or equal to the number of values returned by form. (The first returned value is numbered 0.)

Examples::
      (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
See Also::

multiple-value-list , nth

Notes::

Operationally, the following relationship is true, although nth-value might be more efficient in some implementations because, for example, some consing might be avoided.

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