Funktionale Programmierung / Amount-Funktion
Amount-Funktion
Mit ".amount" werden alle Werte einer Liste gegen eine Abfrage geprüft und die Anzahl an "true's" als Ergebnis zurück gegeben.
Dies eignet sich z.B. dafür, die Anzahl an Vorkommen eines Wertes zu ermitteln.
Each
data = [1,5,6,7,8,4,3,5,2,9,8,6,4,5]
data.amount( each == 5 ).print
In diesem Beispiel wird ermittelt, wie häufig die "5" in der Liste vorkommt.
Ebenso kann abgefragt werden, wie viele Zahlen kleiner oder gleich 5 sind:
data.amount( each <= 5 ).print
Für komplexere Abfragen können zwei Argumente übergeben werden, womit der Wert von "each" in einer Variable gespeichert wird.
data.amount( :x, x == 3 || x > 7 ).print
FuncLet
Die Abfrage kann auch in eine eigene Funktion ausgelagert werden. Diese benötigt hierfür genau einen Parameter:
::myAmount( val ) = val > 3
data = [1,5,6,7,8,4,3,5,2,9,8,6,4,5]
data.amount( ::this.myAmount ).print
- Powered by
OghsWiki
-