Minimum
Syntax
min($num1, ..., $numN)
$set.min()
Beschreibung
Berechnet das Minimum der angegebenen Zahlen. Die Funktion kann entweder mit mehreren Argumenten oder einer Menge bzw. Liste aus Zahlen als Argument aufgerufen werden. null
-Werte werden ausgefiltert und haben keinen Einfluss auf das Ergebnis.
Das Minimum bezüglich einer benutzerdefinierten Vergleichsfunktion kann über reduce berechnet werden:
cmp -> list ->
$list.reduce(null,
x -> y ->
if ($x == null, $y,
if ($cmp($x, $y) < 0, $y, $x)))
Die so definierte Funktion erwartet eine Komparatorfunktion als erstes und eine Liste als zweites Argument. Sie reduziert die Liste auf dasjenige Einzelelement, das verglichen über die Komparatorfunktion kleiner als jedes andere Element ist.
Parameter
Name | Typ | Beschreibung | Pflicht | Default |
---|---|---|---|---|
num | Zahl | Eine Zahl, die mit den anderen angegebenen Zahlen verglichen werden soll, um das Minimum zu ermitteln. | Einer von beiden muss definiert sein. | |
set | Menge | Eine Menge von Zahlen, die miteinander verglichen werden sollen, um das Minimum zu ermitteln. |
Rückgabewert
Typ: Zahl
Die Zahl aus der angegebenen Menge an Zahlen, die am niedrigsten ist.
Beispiele
Einfacher Zahlenvergleich
min(1, 8, 3, 10)
Ausgabe: 1
Zahlenvergleich mit einer Liste
list(1, 8, 3, 10).min()
Ausgabe: 1
Zahlenvergleich mit doppelten Zahlen
list(1, 8, 10, 8, 3, 10).min()
Ausgabe: 1
Zahlenvergleich mit null
list(1, null, null, 8, 3, 10).max()
Ausgabe: 1
null
Werte werden bei dem Vergleich ignoriert
Vergleich mit einer benutzerdefinierten Funktion für Zeichenketten
{
cmpFun = a -> b -> if($a > $b, -1, 1);
(cmp -> list ->
$list.reduce("",
x -> y ->
if ($x == null, $y,
if ($cmp($x, $y) < 0, $y, $x)
)
)
).apply($cmpFun, list("c", "b", "d", "a"));
}
Ausgabe: a
Die Funktion min()
kann nicht mit Zeichenketten umgehen, dafür muss für eine Minimumbestimmung bei Zeichenketten eine eigene Funktion definiert werden.