mini-fn
とにかくシンプルでそのまま使える
バイナリサイズが小さい
型付けが強力
code:ts
import { Cat, List } from "@mikuroxina/mini-fn";
// Find patterns where x + y + z == 5 for all natural number x, y, and z.
const patterns = Cat.doT(List.monad)
.addM("x", List.range(0, 6))
.addMWith("y", ({ x }) => List.range(0, 6 - x))
.addMWith("z", ({ x, y }) => 5 - (x + y))
.finish(({ x, y, z }) => x, y, z as const); console.dir(List.toArray(patterns));
/* [
] */