Als Übung versuche ich Map, Length und Filter als Reduce-Funktion zu schreiben.
%Vor%Ist das die eleganteste Syntax, die ich verwenden kann, um diese Funktionen als reduzierend zu beschreiben? 2. Frage: Karte nimmt eine Funktion an f: (T- & gt; T) Grundsätzlich sagt der Typ, dass ich nur etwas vom Typ T zurückgeben kann, aber was passiert, wenn die Funktion, die ich schreibe, den Typ T in ein Bool oder Int umwandelt ... Wie erreiche ich das? Scheint, dass Karte nicht existiert
Für ein Mapping, das einen Typ T
in einen (möglicherweise anderen) Typ S
transformiert
Verwenden Sie einfach zwei type Platzhalter:
Beispiel:
%Vor% Ob das "das ist die eleganteste Syntax" ist auch a
Angelegenheit der persönlichen Meinung. Wenn Sie die Methode append()
ersetzen
durch Array-Verkettung mit +
, dann die seed
-Parameter benötigt
nicht variabel sein:
Was mit Kurznamen als
geschrieben werden kann %Vor%Ähnlich:
%Vor% Beachten Sie, dass eine Implementierung von map()
und filter()
verwendet
reduce()
(anstelle einer Schleife) ist ziemlich ineffektiv, weil ein neues Array in jedem Reduktionsschritt erzeugt wird. Siehe zum Beispiel
für eine Analyse. Für eine Übung (wie Sie gesagt haben) ist es in Ordnung, einfach verwende sowas nicht in der Produktion).