Gesetze von Monaden in Scala in Ubuntu 20.04
Wir sorgen dafür. Mit anderen Worten, ein Wert unterliegt immer noch den Auswirkungen der Monade. Ein völlig wiederverwendbares Stück Code, das ein allgemeines Problem löst.
Die folgenden drei Monadgesetze:
Links Identität
Gemäß der linken Identität ist das Aufrufen der FlatMap -Funktion, um eine Funktion „F“ auf einen Wert „x“ anzuwenden, der von der Einheitfunktion angehoben wurde, identisch mit der Anwendung der Funktion „F“ direkt auf den Wert „x“:
Monad.Einheit (x).flatMap (f) = f (x)Richtige Identität
Wenn die FlatMap -Funktion verwendet wird und die Einheitsfunktion als Funktion „F“ verwendet wird, ist das Ergebnis der anfängliche monadische Wert:
X.Flatmap (y => monad.Einheit (y)) = xAssoziativität
Nach dieser Regel ist die Verwendung einer Reihe von FlatMap -Aufrufen, um zwei Funktionen, „F“ und „G“, auf einen Monadwert anzuwenden Parameter.
X.Flatmap (f).flatmap (g) = o.flatMap (x => f (x).Flapmap (g))Vorteile von Monaden in Scala in Ubuntu 20.04
Wie man Monaden in Scala in Ubuntu 20 verwendet.04
Monaden werden verwendet, um Objekte zu enthalten, und sie erzeugen die entsprechenden zwei Funktionen:
Einheit(): Ähnlich wie bei Javas void -Keyword gibt Unit () keine Datentypen zurück.
flatMap ():Ähnlich wie bei der Scala Function MAP () erzeugt FlatMap () stattdessen eine Reihe von Elementen im Gegensatz zu einer einzelnen Komponente. Nachdem eine Flatmap auf die angegebene Sequenz angewendet wurde, wird eine Liste erstellt, wobei die innere Gruppierung beseitigt und eine Sequenz erstellt wurde. Der Begriff „monadisch“ bezieht sich auf Sammlungen, die sowohl Flatmap als auch MAP unterstützen können.
Beispiel Nr. 1: Verwenden von FlatMap und Karte für die Sammlung in Scala in Ubuntu 20.04
Gelegentlich erinnert ein Monad einen Container daran, eine bestimmte Schnittstelle zu verwenden, wenn sie mit seinen Werten arbeiten. Monad kann einer Schachtel mit einem Objekt im Inneren ähneln, wenn wir sie selbst modellieren. Wir können dieses Objekt mit FlatMap und einer weiteren praktischen Funktionskarte abrufen.
Für dieses Scala -Programm haben wir das Objekt als "myObject1" definiert, da das Objekt "myObject1" erstellt wird. Jetzt haben wir innerhalb des „MyObject1“ die Definition der Skala -Hauptfunktion implementiert. Diese Funktion dient als primärer Ausgangspunkt für das Ausführen eines Scala -Code. Innerhalb der Hauptfunktion der Scala haben wir die Deklaration der Variablen als „L1“ und „L2“. Mit diesen Variablen haben wir die "Liste" und die "Liste" zugewiesen, die mit den vier verschiedenen Zahlen initialisiert werden sollen.
Dann haben wir eine andere Variable, „L3“, in der wir die Flatmapfunktion angewendet haben, und innerhalb der Fladenfit -Funktion haben wir die Kartenfunktion aufgerufen. Zunächst berechnete die Kartenfunktion die Liste. Danach bewertete die Flatmap die Liste. Die Liste wird von der Println -Funktion generiert, da wir die Variable „L3“ an sie übergeben haben, da „L3“ eine Monads -Operation hat.
Wir haben eine andere Liste, wenn die Kartenfunktion angewendet wird, aber am Ende wird die folgende Liste nach Anwendung der FlatMap -Funktion generiert.
Beispiel Nr. 2: Verwenden einer Fladenmap zum Entfernen der internen Gruppe in Scala in Ubuntu 20.04
Wir haben die Funktion von Flatmap im oben genannten Skala -Skript mit der Ausgabe erklärt. In dieser speziellen Scala -Instanz haben wir nun die innere Gruppierung der Sammlungen mit der Anwendung von FlatMap () entfernt.
Wir haben das Scala -Objekt als "myObject2" etabliert. Dann haben wir die Hauptmethode -Definition im „MyObject2“ angehoben. Die Hauptdefinition hat das Argument der Befehlszeile für die Unterstützung der Scala -Funktionen. Die Hauptmethode wird mit der Deklaration der Variablen und des Betriebs erweitert. Wir haben die beiden Variablen „P“ und „Q“ definiert, die die Liste der Zahlen im Bereich haben.
Die Elemente des Sets werden von der Methode Tolist () als Liste zurückgegeben. Danach haben wir die Flatmap und dann die Kartenfunktion angewendet, die in der Variablen „L3“ aufgerufen wird. Zunächst wird die Liste aus dem Vorgang "I*J" berechnet. Dann haben wir die Liste aus der Kartenfunktion erhalten. Aus der FlatMap -Funktion wird nur eine Liste bewertet. Alle internen Listen werden intern entfernt.
Daher wird die Liste nach dem Entfernen der internen Sammlungen wie unten generiert.
Abschluss
Wir haben die Idee von Monaden in Scala in diesem Leitfaden besprochen. Wir haben den minimalen Satz von Methoden eingeführt, die eine Monate nach einer kurzen Definition von Monaden anbieten muss, einschließlich der Einheit und der Flatmap. Wir haben zuletzt die drei Monadgesetze besprochen. Die Scala Standard Library verfügt über eine Vielzahl von Typen, die alle von der interessanten und praktischen Idee von Monaden beeinflusst werden. Die Sammlungstypen von Listen, Baum und Karte, um einige zu erwähnen, sowie Option, Zukunft und beide sind alle Monaden.