Nest.JS | Monades -> Identité
La monade Identity est une monade simple qui encapsule une valeur sans appliquer de comportement ou de calcul supplémentaire. Il est souvent utilisé comme bloc de construction pour des monades plus complexes.
La monade Identity est généralement implémentée en tant qu'objet doté d'une seule méthode, appelée run, qui prend la valeur encapsulée et la renvoie. La monade Identity peut être utilisée pour encapsuler une valeur et enchaîner plusieurs calculs qui opèrent sur la valeur encapsulée.
Voici un exemple de la monade Identity en 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;
}
}
Par exemple, vous pouvez créer une identité qui encapsule un nombre, puis utiliser la mapméthode pour incrémenter ce nombre, vous pouvez ensuite enchaîner plusieurs de ces identités pour créer un calcul plus complexe, sans avoir à déballer manuellement la valeur à chaque étape.
Dans Nest.js, un Monad est un objet qui encapsule une valeur et fournit un ensemble de méthodes pour travailler avec cette valeur de manière fonctionnelle. La monade d'identité est une simple monade qui encapsule une valeur et n'effectue aucune opération supplémentaire dessus.
Voici un exemple d'utilisation d'Identity Monad dans 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!');
}
}
Pour extraire la valeur enveloppée, vous pouvez utiliser la .valuepropriété ou la .extract()méthode
console.log(myService.doSomething().value)
console.log(myService.doSomething().extract())
Il est important de noter que cet exemple est basique et ne démontre pas toute la puissance de Monads dans la programmation fonctionnelle. Les monades peuvent être utilisées pour gérer divers cas comme la gestion des erreurs, l'enchaînement de plusieurs calculs et plus encore, il est préférable de comprendre le problème et les cas d'utilisation avant d'appliquer les monades.
Liste des pièces :
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































