ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   5 Data and Control Flow   5.3 Dictionary of Data and Control Flow

5.3.56 nth-value Macro

Syntax:
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))

Allegro CL Implementation Details:
None.

Home Previous Up Next Table of Contents Index
© Franz Inc. 1998-2019 - File last updated 02-07-2019