Nest.JS | Mônadas -> Identidade

Jan 27 2023
A mônada Identity é uma mônada simples que envolve um valor sem aplicar nenhum comportamento ou cálculo adicional. É freqüentemente usado como um bloco de construção para mônadas mais complexas.

A mônada Identity é uma mônada simples que envolve um valor sem aplicar nenhum comportamento ou cálculo adicional. É freqüentemente usado como um bloco de construção para mônadas mais complexas.

A mônada Identity é normalmente implementada como um objeto que possui um único método, chamado run, que pega o valor agrupado e o retorna. A mônada Identity pode ser usada para agrupar um valor e encadear vários cálculos que operam no valor agrupado.

Aqui está um exemplo da mônada Identity em JavaScript:

class Identity {
  constructor(value) {
    this.value = value;
  }
  map(f) {
    return new Identity(f(this.value));
  }
  chain(f) {
    return f(this.value);
  }
  run() {
    return this.value;
  }
}

Por exemplo, você pode criar uma identidade que agrupa um número e, em seguida, usar o mapmétodo para incrementar esse número; você pode encadear várias dessas identidades para criar uma computação mais complexa, sem precisar desempacotar manualmente o valor em cada etapa.

No Nest.js, uma Mônada é um objeto que agrupa um valor e fornece um conjunto de métodos para trabalhar com esse valor de maneira funcional. O Identity Monad é um Monad simples que envolve um valor e não executa nenhuma operação adicional nele.

Aqui está um exemplo de como você pode usar o Identity Monad no Nest.js:

import { Injectable } from '@nestjs/common';
import { Identity } from 'fp-ts/lib/Identity';

@Injectable()
export class MyService {
  public doSomething(): Identity<string> {
    return new Identity('Hello, World!');
  }
}

Para extrair o valor agrupado, você pode usar a .valuepropriedade ou o .extract()método

console.log(myService.doSomething().value)
console.log(myService.doSomething().extract())

É importante observar que este exemplo é básico e não demonstra todo o poder das Mônadas na programação funcional. As mônadas podem ser usadas para lidar com vários casos, como tratamento de erros, encadeamento de vários cálculos e muito mais. É melhor entender o problema e os casos de uso antes de aplicar as mônadas.

Lista de peças: