Leggi delle monadi in Scala in Ubuntu 20.04
Garantiamo che qualsiasi successione di distribuzioni delle funzioni di mappa piatta e università si traduca in una monade valida se la monade soddisfa le tre leggi. In altre parole, un valore è ancora soggetto agli effetti della monade. Un pezzo di codice completamente riutilizzabile che risolve un problema generale è ciò che le monadi e le loro regole definiscono un paradigma di progettazione dal punto di vista della programmazione.
Le seguenti tre leggi sulla monade:
Identità sinistra
Secondo l'identità di sinistra, invocare la funzione flatmap per applicare una funzione "f" a un valore "x" che è stato sollevato dalla funzione unitaria è identico all'applicazione della funzione "f" direttamente al valore "x":
Monade.Unità (x).flatmap (f) = f (x)Giusta identità
Dice che quando viene utilizzata la funzione FlatMap e la funzione dell'unità viene utilizzata come funzione "F", il risultato è il valore monadico iniziale:
X.flatmap (y => monade.unità (y)) = xAssociatività
Secondo questa regola, l'uso di una serie di chiamate Flatmap per applicare due funzioni, "F" e "G", a un valore di monade è identico all'uso di "G" da applicare all'output della funzione FlatMap con "F" come il parametro.
X.flatmap (f).flatmap (g) = o.flatmap (x => f (x).flapmap (g))Vantaggi delle monadi in Scala in Ubuntu 20.04
Come usare le monadi in Scala in Ubuntu 20.04
Le monadi vengono utilizzate per contenere oggetti e producono le due funzioni corrispondenti:
unità(): Simile alla parola chiave void di Java, unità () non restituisce alcun tipo di dati.
flatmap ():Simile a Scala Function Map (), flatMap () produce invece una serie di elementi rispetto a un singolo componente. Dopo aver applicato una mappa piatta alla sequenza data, viene prodotto un elenco con il raggruppamento interno eliminato e una sequenza creata. Il termine "monadico" si riferisce a raccolte che possono supportare sia la mappa e la mappa.
Esempio n. 1: usando FlatMap e Map per la raccolta in Scala in Ubuntu 20.04
Occasionalmente, una monade ricorderà a un contenitore di utilizzare un'interfaccia specifica quando si lavora con i suoi valori. La monade può assomigliare a una scatola con un oggetto all'interno se lo modelliamo. Possiamo recuperare questo oggetto usando Flatmap e un'altra mappa delle funzioni pratiche.
A questo programma Scala, abbiamo definito l'oggetto come "myobject1" quando viene creato l'oggetto "myobject1". Ora, all'interno del "myobject1", abbiamo implementato la definizione della funzione principale di Scala. Questa funzione funge da punto di partenza primario per l'esecuzione di qualsiasi codice Scala. All'interno della funzione principale di Scala, abbiamo la dichiarazione delle variabili come "L1" e "L2". A queste variabili, abbiamo assegnato "elenco" e "elenco" da inizializzare con i quattro numeri diversi, rispettivamente.
Quindi, abbiamo un'altra variabile, "L3" in cui abbiamo applicato la FlatMapfunction e all'interno della funzione FlatMap, abbiamo invocato la funzione della mappa. Innanzitutto, la funzione MAP ha calcolato l'elenco; Successivamente, la mappa flat ha valutato l'elenco. L'elenco sarà generato dalla funzione println mentre abbiamo passato la variabile "L3" perché "L3" ha un'operazione di monadi.
Abbiamo un elenco diverso quando viene applicata la funzione mappa, ma alla fine l'elenco seguente viene generato dopo aver applicato la funzione FlatMap.
Esempio n. 2: usando una mappa piatta per la rimozione del gruppo interno in Scala in Ubuntu 20.04
Abbiamo spiegato la funzione di Flatmap nello script Scala sopra menzionato con l'output. Ora, in questa particolare istanza Scala, abbiamo rimosso il raggruppamento interno delle raccolte utilizzando l'applicazione FlatMap ().
Abbiamo stabilito l'oggetto Scala come "myobject2". Quindi, abbiamo sollevato la definizione del metodo principale all'interno del "myobject2". La definizione principale ha l'argomento della riga di comando per supportare le funzioni Scala. Il metodo principale viene ampliato con la dichiarazione delle variabili e del funzionamento. Abbiamo definito le due variabili "P" e "Q" che hanno l'elenco dei numeri all'interno dell'intervallo.
Gli elementi del set vengono restituiti come elenco con il metodo Tolist (). Successivamente, abbiamo applicato la mappa flat e quindi la funzione della mappa, che viene invocata all'interno della variabile "L3". Innanzitutto, l'elenco viene calcolato dall'operazione "I*J". Quindi, abbiamo ottenuto l'elenco dalla funzione della mappa. Dalla funzione flatmap, viene valutato solo un elenco. Tutti gli elenchi interni verranno rimossi internamente.
Quindi l'elenco dopo la rimozione delle raccolte interne viene generato come di seguito.
Conclusione
Abbiamo discusso dell'idea delle monadi in Scala in questa guida. Abbiamo introdotto il set minimo di metodi che una monade deve eseguire dopo aver offerto una breve definizione di monadi, che includeva l'unità e la mappa flat. Abbiamo discusso infine le tre leggi sulla monade. La biblioteca standard Scala ha un'ampia varietà di tipi che sono tutti influenzati dall'idea interessante e pratica delle monadi. I tipi di raccolta di elenchi, albero e mappa, per menzionarne alcuni, oltre all'opzione, al futuro e entrambi, sono tutte monadi.