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.