# min(numberList)

Operator Type:

Operator Scope of Action:

Operator Purpose:

Operator Last Altered:

Function  [other Function type actions]

List  [operators of similar scope]

Mathematical  [other Mathematical operators]

Baseline

As at baseline

Yes

min(numberList)

The min() operator returns the smallest item in a list or the values of a List or Set data type attribute. As it operates off a list it may be more convenient to use the newer List/Set.min chained operator.

Both the operators max() and min() use lexical comparison in most cases, but numeric comparison if the context is numeric (i.e. the reference is a Number-type attribute) and/or all list items are numbers. Thus:

`\$Width=min("100;2;70");`

Since "Width" is numeric, min() will be return 2.

`\$Name=min("100;2;70");`

Since the attribute "Name" is a string, min() will return 100.

If without a list, create one on the fly using list(), collect() or collect_if():

`\$FistDate = min(list(\$DateA,\$DateB,\$DateC));`

`\$MyMin = min(collect(descendants, \$Modified));`

`\$MyMin = min(collect_if(all,\$MyNum>0,\$MyNum));`

This allows export via ^value^:

^value(min(collect(descendants,\$Modified)))^

To use min() with a list of items that are attributes or expressions, use list():

Works: `\$MyNumber = min(list(4+2,9+6));` (output: 6)

For more complex examples, where list items are action code expressions, it may be necessary to use eval() to wrap each list item expression e.g. `list(eval(expressionA),eval(expressionB))`.

Using lists of dates

When using Date-type data bear in mind that the defaults for an unset Date attribute is "`never`" and that "never" is treated as sorting always before (i.e. less than) any set date. So to use min() with dates, filter out the unset values, whereas with max() it is not needed:

`\$MyMax = max(collect_if(descendants,\$Modified));`

`\$MyMin = min(collect_if(descendants,(\$Modified!="never"),\$Modified));`