max($num1, ..., $numN)
$set.max()
Berechnet das Maximum 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 Maximum 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 größer als jedes andere Element ist.
| Name | Typ | Beschreibung | Pflicht | Default |
|---|---|---|---|---|
| num | Zahl | Eine Zahl, die mit den anderen angegebenen Zahlen verglichen werden soll, um das Maximum zu ermitteln. | Einer von beiden muss definiert sein. | |
| set | Menge | Eine Menge von Zahlen, die miteinander verglichen werden sollen, um das Maximum zu ermitteln. |
Typ: Zahl
Die Zahl aus der angegebenen Menge an Zahlen, die am höchsten ist.
max(1, 8, 3, 10)
Ausgabe: 10
list(1, 8, 3, 10).max()
Ausgabe: 10
list(1, 8, 10, 8, 3, 10).max()
Ausgabe: 10
list(1, null, null, 8, 3, 10).max()
Ausgabe: 10
null Werte werden bei dem Vergleich ignoriert
{
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: d
Die Funktion max() kann nicht mit Zeichenketten umgehen, dafür muss für eine Maximumbestimmung bei Zeichenketten eine eigene Funktion definiert werden.