Yuva.JS | Monadlar -> Kimlik

Jan 27 2023
Kimlik monad, herhangi bir ek davranış veya hesaplama uygulamadan bir değeri saran basit bir monaddır. Genellikle daha karmaşık monadlar için bir yapı taşı olarak kullanılır.

Kimlik monad, herhangi bir ek davranış veya hesaplama uygulamadan bir değeri saran basit bir monaddır. Genellikle daha karmaşık monadlar için bir yapı taşı olarak kullanılır.

runIdentity monad, tipik olarak, sarılmış değeri alan ve onu döndüren, adı verilen tek bir yöntemi olan bir nesne olarak uygulanır . Identity monad, bir değeri sarmak ve sarmalanmış değer üzerinde çalışan birden fazla hesaplamayı zincirlemek için kullanılabilir.

İşte JavaScript'teki Kimlik monadına bir örnek:

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;
  }
}

Örneğin, bir sayıyı saran bir Kimlik oluşturabilir ve ardından mapbu sayıyı artırmak için yöntemi kullanabilirsiniz, daha sonra, her adımda değeri manuel olarak açmak zorunda kalmadan daha karmaşık bir hesaplama oluşturmak için bu Kimliklerin çoğunu birbirine zincirleyebilirsiniz.

Nest.js'de Monad, bir değeri saran ve bu değerle işlevsel bir şekilde çalışmak için bir dizi yöntem sağlayan bir nesnedir. Identity Monad, bir değeri saran ve üzerinde herhangi bir ek işlem yapmayan basit bir Monad'dır.

Identity Monad'ı Nest.js'de nasıl kullanabileceğinize dair bir örneği burada bulabilirsiniz:

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!');
  }
}

.valueSarılmış değeri çıkarmak için özelliği veya .extract()yöntemi kullanabilirsiniz.

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

Bu örneğin temel bir örnek olduğunu ve işlevsel programlamada Monad'ların tam gücünü göstermediğini not etmek önemlidir. Monad'lar, hata işleme, çoklu hesaplamaları zincirleme ve daha fazlası gibi çeşitli durumları ele almak için kullanılabilir, monad'ları uygulamadan önce sorunu ve kullanım durumlarını anlamak en iyisidir.

parça listesi: