Skip to content

Commit 829dd16

Browse files
committed
rename join to flatten
1 parent 975e5e5 commit 829dd16

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

src/monad/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { defineGeneric } from "../generic/index.js"
44
export const fmap = defineGeneric({ default: (f, ma) => f(ma) })
55

66
// (M(M(A))) -> M(A)
7-
export const join = defineGeneric({ default: (mma) => mma })
7+
export const flatten = defineGeneric({ default: (mma) => mma })
88

99
// (M(A), (A) -> M(B)) -> M(B)
10-
export const bind = (ma: any, f: (x: any) => any) => join(fmap(f, ma))
10+
export const bind = (ma: any, f: (x: any) => any) => flatten(fmap(f, ma))
1111

1212
// ((A0, A1, ...) -> B) -> (M(A0), M(A1), ...) -> M(B)
1313
export function naryFmap(

src/monads/belief-monad.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import { Belief, isBelief } from "../belief/index.js"
22
import { isNothing, nothing } from "../cell/Nothing.js"
33
import { defineHandler } from "../generic/index.js"
4-
import { bind, fmap, join } from "../monad/index.js"
4+
import { bind, flatten, fmap } from "../monad/index.js"
55
import { isFunction } from "../utils/isFunction.js"
66
import { setUnion } from "../utils/set/index.js"
77

88
defineHandler(fmap, [isFunction, isBelief], (f, ma) =>
99
Belief(bind(ma.value, f), ma.reasons),
1010
)
1111

12-
defineHandler(join, [isBelief], (mma) => mma)
12+
defineHandler(flatten, [isBelief], (mma) => mma)
1313
defineHandler(
14-
join,
14+
flatten,
1515
[(mma) => isBelief(mma) && isNothing(mma.value)],
1616
(mma) => nothing,
1717
)
18-
defineHandler(join, [(mma) => isBelief(mma) && isBelief(mma.value)], (mma) =>
19-
join(Belief(mma.value.value, setUnion(mma.reasons, mma.value.reasons))),
18+
defineHandler(flatten, [(mma) => isBelief(mma) && isBelief(mma.value)], (mma) =>
19+
flatten(Belief(mma.value.value, setUnion(mma.reasons, mma.value.reasons))),
2020
)

src/monads/belief-system-monad.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import { BeliefSystem, isBeliefSystem } from "../belief-system/index.js"
22
import { Belief } from "../belief/index.js"
33
import { defineHandler } from "../generic/index.js"
4-
import { fmap, join } from "../monad/index.js"
4+
import { flatten, fmap } from "../monad/index.js"
55
import { isFunction } from "../utils/isFunction.js"
66

77
defineHandler(fmap, [isFunction, isBeliefSystem], (f, ma: BeliefSystem<any>) =>
88
BeliefSystem(ma.beliefs.map((belief) => fmap(f, belief))),
99
)
1010

1111
defineHandler(
12-
join,
12+
flatten,
1313
[
1414
(mma) =>
1515
isBeliefSystem(mma) &&
1616
mma.beliefs.some((belief) => isBeliefSystem(belief.value)),
1717
],
1818
(mma: BeliefSystem<any>) =>
19-
join(
19+
flatten(
2020
BeliefSystem(
2121
mma.beliefs.flatMap((belief) =>
2222
isBeliefSystem(belief.value)
2323
? belief.value.beliefs.map((innerBelief) =>
24-
join(Belief(innerBelief, belief.reasons)),
24+
flatten(Belief(innerBelief, belief.reasons)),
2525
)
2626
: [belief],
2727
),

src/monads/nothing-monad.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { isNothing, nothing } from "../cell/Nothing.js"
22
import { defineHandler } from "../generic/index.js"
3-
import { fmap, join } from "../monad/index.js"
3+
import { flatten, fmap } from "../monad/index.js"
44
import { isFunction } from "../utils/isFunction.js"
55

66
defineHandler(fmap, [isFunction, isNothing], (f, ma) => nothing)
77

8-
defineHandler(join, [isNothing], (mma) => nothing)
8+
defineHandler(flatten, [isNothing], (mma) => nothing)

0 commit comments

Comments
 (0)