[ Arithmetic | Reference Manual | Alphabetic Index ]

# min(+Vector, -Result)

Evaluates the the arithmetic expressions in Vector and unifies their minimum with Result.

Vector
  A list, array or vector expression.
Result
  Output: number.

## Description

This predicate is used by the ECLiPSe compiler to expand evaluable arithmetic expressions. So the call to min(Vector, Result) is equivalent to

        Result is min(Vector)

which should be preferred.

Vector must be a non-empty list, array or collection expression (as accepted by eval_to_list/2). The elements of Vector must be numbers, and Result is the minimum of these numbers (converted to the widest type of the vector elements).

In coroutining mode, if the list is only partly instantiated, the predicate delays until the list is complete.

### Modes and Determinism

- min(+, -) is det

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

### Exceptions

(4) instantiation fault
  Vector is insufficiently instantiated (non-coroutining mode only).
(5) type error
  Vecotr is not a list, array, or vector expression.

## Examples

    Success:
          X is min([1,2,3]).                 % gives X = 1
          X is min([1,2.0,3]).               % gives X = 1.0

          X is min([](1,2,3)).               % gives X = 1

          A=[](4,5,6,7), X is min(A[2..3]).  % gives X = 5

    Error:
          X is min([]).                      % type error

## See Also

is / 2, min / 3, max / 2, eval_to_list / 2