emptyListMap
repräsentiert die leere ListMap. Anhand dieser Konstruktion ist zu sehen, dass sie sich nur in einem Punkt zum Stack unterscheidet. Der letzte Parameter, der ListMap ist nicht nur id
wie beim Stack, sondern ein Paar mit id
als Schlüssel und id
als dazugehörigen Wert.[ (key1, value1), (key2, value2), (key3, value3), ... ]
pair
gearbeitet wird als Eintrag.getElementByKey
Funktion kann anhand eines Schlüssels auf den dazugehörigen Wert zugegriffen werden.removeByKey
kann ein Wert anhand des Schlüssel entfernt werden.convertObjToListMap
kann ein JavaScript Objekt zu einer ListMap konvertiert werden. JavaScript-Objekte sind Container für benannte Werte, die Properties oder Methoden genannt werden. In der Konvertierungsfunktion werden die Namen als String-Schlüssel verwendet.Tuple-Konstruktor mitconvertObjToListMap
Mit der FunktionconvertObjToListMap
kann eine Tuple-Artige Datenstruktur mit Zugriffsfunktionen erstellt werden.
Die FunktionpersonCtor
bildet den Konstruktor für das Personen Tuple.// Person-Constructorconst personCtor = fstName => lstName => age => convertObjToListMap({fstName, lstName, age});
Die übergebenen Variablen im "Konstruktor" bilden später zusammen mit der FunktiongetElementByKey
die Zugriffsfunktionen für die Werte im Tuple.
// create Person-Tuplesconst chuck = personCtor("Chuck")("Norris")(42);const peter = personCtor("Peter")("Pan")(102);// accessor functionsgetElementByKey( chuck )( "fstName" ) === "Chuck"getElementByKey( chuck )( "lstName" ) === "Norris"getElementByKey( chuck )( "age" ) === 42getElementByKey( peter )( "fstName" ) === "Peter"getElementByKey( peter )( "lstName" ) === "Pan"getElementByKey( peter )( "age" ) === 102
convertListMapToArray
kann eine ListMap in ein JavaScript-Array konvertiert werden. Dabei werden nur die Werte in der ListMap erfasst.map
, filter
und reduce
implementiert. Dies um die Anwendung nochmals zu vereinfachen, weil sonst mit einem pair(key)(value) gearbeitet werden muss, obwohl der Anwender den Key dabei nicht benötigt bzw. verändern darf. Der Key wird in den HOF's für die ListMap weg abstrahiert, sodass sicher der Anwender auf das eigentliche Element konzentrieren kann.map
) und eine ListMap entgegen. Zurück gibt die Funktion eine neue ListMap mit den "gemappten" Werten.filter
) und eine ListMap __entgegen. Die Funktion gibt die gefilterte ListMap __zurück. Wenn keine Elemente dem Filter entsprechen wird die leere ListMap __(emptyListMap
) zurückgegeben.reduce
), als zweites einen Startwert und als letzten Parameter eine ListMap. Die Funktion gibt den reduzierten Wert zurück.logListMapToConsole
nimmt eine ListMap entgegen und führt einen Seiteneffekt aus. Der Seiteneffekt gibt die ListMap mit dessen Schlüssel-Wert Paaren auf die JavaScript-Konsole aus.