Mônadas scala

Mônadas scala
“Mônadas são construídas em Scala que realiza cálculos subsequentes. É um item que envolve o outro item. É importante ter em mente que, neste caso, o resultado de uma operação em uma etapa serve como entrada para outro cálculo que é o pai da etapa mais recente do programa. Monad é um conceito e não uma classe ou uma característica. A maioria das coleções de Scala são mônadas, embora nem todas as mônadas sejam coleções; Algumas mônadas em Scala são recipientes como opções. Em poucas palavras, podemos afirmar que em Scala, tipos de dados, como opções, listas e outros tipos que implementam mapa e Flatmap () são chamados de Mônadas.”

Leis de Mônadas em Scala no Ubuntu 20.04

Garantimos que qualquer sucessão de implantações das funções de mapa plana e unidade resulte em uma mônada válida se a mônada cumprir as três leis. Em outras palavras, um valor ainda está sujeito aos efeitos da mônada. Uma peça de código completamente reutilizável que resolve uma questão geral é o que as mônadas e suas regras definem como um paradigma de design da perspectiva da programação.

As três leis seguintes da Monad:

Identidade esquerda

De acordo com a identidade esquerda, invocando a função FlatMap para aplicar uma função "f" a um valor "x" que foi levantado pela função da unidade é idêntica à aplicação da função "F" direto ao valor "X":

Mônada.unidade (x).Flatmap (f) = f (x)

Identidade correta

Ele diz que quando a função de mapa plana é usada e a função da unidade é usada como a função "f", o resultado é o valor monádico inicial:

x.Flatmap (y => Monad.unidade (y)) = x

Associatividade

De acordo com esta regra, o uso de uma série de chamadas de mapa plana para aplicar duas funções: "F" e "G", a um valor de Monad é idêntico ao uso de "G" para se aplicar à saída da função plana com "F" como o parâmetro.

x.Flatmap (F).Flatmap (G) = O.Flatmap (x => f (x).Flapmap (G))

Vantagens de Mônadas em Scala no Ubuntu 20.04

  • No trabalho diário de um programador funcional, Monads e Monad Transformers são abstrações úteis.
  • Monad nos permite construir programas com base nas leis, mesmo que possa parecer uma linguagem de programação para si mesma! Sem muito fluxo de controle, podemos combinar muitos valores monádicos.
  • Como resultado, há menos falhas lógicas no código, programas melhor estruturados e, o mais importante, temos a opção de atualizar os programas no futuro com muito mais facilidade, sem causar estragos em todo o planeta.

Como usar mônadas em Scala no Ubuntu 20.04

Mônadas são usadas para conter objetos e produzem as duas funções correspondentes:

unidade(): Semelhante à palavra -chave vazia de Java, a unidade () não retorna nenhum tipo de dados.

Flatmap ():Semelhante ao mapa de função scala (), Flatmap () produz uma série de elementos em oposição a um único componente. Depois de aplicar um mapa plano à sequência fornecida, uma lista é produzida com o agrupamento interno eliminado e uma sequência criada. O termo "Monadic" refere -se a coleções que podem suportar o Flatmap e o mapa.

Exemplo # 1: Usando Flatmap e Mapa para a coleção em Scala no Ubuntu 20.04

Ocasionalmente, uma mônada lembra um contêiner de usar uma interface específica ao trabalhar com seus valores. Monad pode se parecer com uma caixa com um objeto dentro se nós o modelarmos. Podemos recuperar esse objeto usando o Flatmap e mais um mapa de funções práticas.

Para este programa Scala, definimos o objeto como "myObject1" como o objeto "myObject1" é criado. Agora, dentro do "MyObject1", implementamos a definição da função principal do Scala. Esta função serve como o principal ponto de partida para executar qualquer código Scala. Dentro da principal função do Scala, temos a declaração das variáveis ​​como "L1" e "L2". Para essas variáveis, atribuímos a "lista" e a "lista" a ser inicializada com os quatro números diferentes, respectivamente.

Em seguida, temos outra variável, "L3", onde aplicamos a função plana e, dentro da função FlatMap, invocamos a função do mapa. Primeiro, a função de mapa calculou a lista; depois, o Flatmap avaliou a lista. A lista será gerada pela função Println à medida que passamos a variável "L3" porque "L3" tem uma operação de Mônadas.

Temos uma lista diferente quando a função do mapa é aplicada, mas no final, a lista abaixo é gerada após a aplicação da função de mapa plana.

Exemplo # 2: Usando um FlatMap para remover o grupo interno em Scala no Ubuntu 20.04

Explicamos a função do Flatmap no script Scala mencionado acima com a saída. Agora, nesta instância em particular, removemos o agrupamento interno das coleções usando o aplicativo Flatmap ().

Nós estabelecemos o objeto Scala como "MyObject2". Em seguida, aumentamos a definição principal do método dentro do “myObject2”. A definição principal tem o argumento da linha de comando para apoiar as funções da Scala. O método principal é expandido com a declaração das variáveis ​​e operação. Definimos as duas variáveis ​​"P" e "Q" que têm a lista de números dentro do intervalo.

Os elementos do conjunto são devolvidos como uma lista pelo método Tolist (). Depois disso, aplicamos o FlatMap e, em seguida, a função do mapa, que é invocada dentro da variável "L3". Primeiro, a lista é calculada a partir da operação "i*j". Então, obtemos a lista da função do mapa. A partir da função de mapa plana, apenas uma lista é avaliada. Todas as listas internas serão removidas internamente.

Portanto, a lista após a remoção das coleções internas é gerada como abaixo.

Conclusão

Discutimos a idéia de mônadas em Scala neste guia. Introduzimos o conjunto mínimo de métodos que uma mônada deve executar após oferecer uma breve definição de mônadas, que incluía a unidade e o plangmap. Discutimos as três leis de mônada finalmente. A Biblioteca Padrão Scala tem uma grande variedade de tipos que são todos influenciados pela idéia interessante e prática de Mônadas. Os tipos de coleta de listas, árvores e mapa, para mencionar alguns, assim como a opção, o futuro, e qualquer um, são todos mônados.