monads
1.0.0
Si vous utilisez ce référentiel, jouez-le
Inspiré par la rouille
Zéro dépendances • Léger • fonctionnel
NPM Install @ Thames / Monades
Option<T> TypeL'option représente une valeur facultative: chaque option est soit et contient une valeur, soit aucune, et ne le fait pas.
Note
Documentation complète ici: Option
import {option, certains, aucun} de '@ thames / monads'; const divide = (Numerator: Number, Denominator: Number): Option <nom> => {
if (denominator === 0) {return nul;
} else {return some (Numerator / Denominator);
}}.
certains: (res) => `Résultat: $ {res}`,
Aucun: 'Impossible de diviser par 0',}); console.log (message); // "Résultat: 0,66666666666666666"Result<T, E> typeLe résultat représente une valeur qui est soit un succès (OK), soit un échec (ERR).
Note
Documentation complète ici: Résultat
import {result, ok, err} de '@ thames / monads'; const getindex = (valeurs: string [], valeur: string): result <nombre, string> => {
const index = valeurs.indexof (valeur);
switch (index) {case -1: return err ('valeur introuvable'); par défaut: return ok (index);
}}; const valeurs = ['a', 'b', 'c']; getIndex (valeurs, 'b'); // ok (1) getIndex (valeurs, 'z'); // err ("valeur introuvable")Either<L, R>Soit représente une valeur qui est à gauche ou à droite. C'est un moyen puissant de gérer les opérations qui peuvent entraîner deux types de résultats distinctement différents.
Note
Documentation complète ici: soit
Importer {soit, à gauche, à droite} depuis '@ thames / monads'; const divide = (Numerator: Number, Denominator: Number): Soit <String, Number> => {
if (denominator === 0) {return gauche ('ne peut diviser par 0');
} else {return reight (Numerator / Denominator);
}}; const result = divide (2.0, 3.0); const message = result.match ({
gauche: (err) => `Erreur: $ {err}`,
Droite: (res) => `Résultat: $ {res}`,}); console.log (message); // "Résultat: 0,66666666666666666"