Nest.JS | Monad -> Identitas
Monad Identitas adalah monad sederhana yang membungkus nilai tanpa menerapkan perilaku atau perhitungan tambahan apa pun. Ini sering digunakan sebagai blok bangunan untuk monad yang lebih kompleks.
Monad Identitas biasanya diimplementasikan sebagai objek yang memiliki metode tunggal, disebut run, yang mengambil nilai terbungkus dan mengembalikannya. Monad Identitas dapat digunakan untuk membungkus nilai dan rantai bersama beberapa perhitungan yang beroperasi pada nilai yang dibungkus.
Berikut adalah contoh monad Identitas dalam 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;
}
}
Misalnya, Anda dapat membuat Identitas yang menggabungkan angka lalu menggunakan mapmetode untuk menambah angka tersebut, Anda kemudian dapat menggabungkan beberapa Identitas ini untuk membuat perhitungan yang lebih kompleks, tanpa harus membuka nilai secara manual di setiap langkah.
Di Nest.js, Monad adalah objek yang membungkus nilai dan menyediakan serangkaian metode untuk bekerja dengan nilai tersebut secara fungsional. Identity Monad adalah Monad sederhana yang membungkus nilai dan tidak melakukan operasi tambahan apa pun padanya.
Berikut adalah contoh bagaimana Anda dapat menggunakan Identity Monad di 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!');
}
}
Untuk mengekstrak nilai yang dibungkus, Anda dapat menggunakan .valueproperti atau .extract()metode
console.log(myService.doSomething().value)
console.log(myService.doSomething().extract())
Penting untuk diperhatikan bahwa contoh ini adalah contoh dasar dan tidak mendemonstrasikan kekuatan penuh Monad dalam pemrograman fungsional. Monad dapat digunakan untuk menangani berbagai kasus seperti penanganan kesalahan, rangkaian perhitungan ganda dan banyak lagi, yang terbaik adalah memahami masalah dan menggunakan kasus sebelum menerapkan monad.
Daftar bagian:

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































