Syntax

	max($num1, ..., $numN)

$set.max()

Beschreibung

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.

Parameter

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.

Rückgabewert

Typ: Zahl

Die Zahl aus der angegebenen Menge an Zahlen, die am höchsten ist.

Beispiele

Einfacher Zahlenvergleich

	max(1, 8, 3, 10)

Ausgabe: 10

Zahlenvergleich mit einer Liste

	list(1, 8, 3, 10).max()

Ausgabe: 10

Zahlenvergleich mit doppelten Zahlen

	list(1, 8, 10, 8, 3, 10).max()

Ausgabe: 10

Zahlenvergleich mit null

	list(1, null, null, 8, 3, 10).max()

Ausgabe: 10

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: d

Die Funktion max() kann nicht mit Zeichenketten umgehen, dafür muss für eine Maximumbestimmung bei Zeichenketten eine eigene Funktion definiert werden.