Skip to content

Commit 91cf263

Browse files
committed
update
1 parent efd2e30 commit 91cf263

3 files changed

Lines changed: 8 additions & 8 deletions

File tree

_site/0-book/unit-5/section-3/3-bind.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ These techniques are effective, but they complicate the library's internal imple
9191

9292
### 3. The Timeline Library's Approach: "It's Wrong for the Diamond Problem to Occur in the First Place"
9393

94-
The `Timeline` library, rather than relying on such low-level mechanisms, cuts this problem off at its root through a higher level of abstraction. Its philosophy is the highly refined idea that **"a design that allows the diamond problem to occur is itself flawed, and a better design should be chosen."
94+
The `Timeline` library, rather than relying on such low-level mechanisms, cuts this problem off at its root through a higher level of abstraction. Its philosophy is the highly refined idea that **"a design that allows the diamond problem to occur is itself flawed, and a better design should be chosen."**
9595

9696
#### Conceptual Purity: Expressing the Essence of "Defining D from A"
9797

@@ -155,7 +155,7 @@ Many other solutions are all "post-problem-fixes." They are merely symptomatic t
155155

156156
However, `bind` enables **"a design where problems don't occur."** This is the very beauty of functional programming.
157157

158-
`.bind` is backed by the mathematical laws of Monad, and its behavior is completely predictable. **With the powerful abstraction of the Monad, developers can completely control side effects (in this case, the unintended propagation of intermediate states) and safely describe only the essential computation.
158+
`.bind` is backed by the mathematical laws of Monad, and its behavior is completely predictable. **With the powerful abstraction of the Monad, developers can completely control side effects (in this case, the unintended propagation of intermediate states) and safely describe only the essential computation.**
159159

160160
The `Timeline` library, being faithful to theory, naturally provides not only `.map` but also `.bind`. This was not intentionally designed with the thought, "this can solve the diamond problem." The Monad algebraic structure is there from the beginning.
161161

@@ -416,7 +416,7 @@ const D = A.bind(a => {
416416

417417
しかし、`bind`**「問題が起きない設計」** を可能にします。これこそが、関数型プログラミングの美しさそのものです。
418418

419-
`.bind`はMonad則という数学的な法則に裏打ちされており、その振る舞いは完全に予測可能です。**モナドという強力な抽象化によって、開発者は副作用(この場合は中間状態の意図しない伝播)を完全に制御し、本質的な計算だけを安全に記述できるのです。
419+
`.bind`はMonad則という数学的な法則に裏打ちされており、その振る舞いは完全に予測可能です。**モナドという強力な抽象化によって、開発者は副作用(この場合は中間状態の意図しない伝播)を完全に制御し、本質的な計算だけを安全に記述できるのです。**
420420

421421
`Timeline`ライブラリは、理論に忠実なので、自然な流れで、`.map`だけでなく`.bind`を提供しています。これは別にわざわざ「ダイアモンド問題はこれで解決可能だ」と意図して設計したものではありません。Monadという代数構造は最初からそこにあるのです。
422422

@@ -434,7 +434,7 @@ const D = A.bind(a => {
434434

435435
## `DependencyCore`
436436

437-
この動的な依存関係の切り替えは、どのようにして実現されているのでしょうか。その答えは、`Timeline`ライブラリの心臓部である**`DependencyCore`**にあります。
437+
この動的な依存関係の切り替えは、どのようにして実現されているのでしょうか。その答えは、`Timeline`ライブラリの心臓部である **`DependencyCore`** にあります。
438438

439439
`DependencyCore`は、アプリケーション内に存在する全ての`Timeline`間の依存関係を記録・管理する、目に見えない中央管理システムです。`.map()``.link()`が静的な依存関係を登録するのに対し、`.bind()`はこの`DependencyCore`をより高度に利用します。
440440

src/content/docs/en/book/unit-5/section-3/3-bind.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ These techniques are effective, but they complicate the library's internal imple
9393

9494
### 3. The Timeline Library's Approach: "It's Wrong for the Diamond Problem to Occur in the First Place"
9595

96-
The `Timeline` library, rather than relying on such low-level mechanisms, cuts this problem off at its root through a higher level of abstraction. Its philosophy is the highly refined idea that **"a design that allows the diamond problem to occur is itself flawed, and a better design should be chosen."
96+
The `Timeline` library, rather than relying on such low-level mechanisms, cuts this problem off at its root through a higher level of abstraction. Its philosophy is the highly refined idea that **"a design that allows the diamond problem to occur is itself flawed, and a better design should be chosen."**
9797

9898
#### Conceptual Purity: Expressing the Essence of "Defining D from A"
9999

@@ -157,7 +157,7 @@ Many other solutions are all "post-problem-fixes." They are merely symptomatic t
157157

158158
However, `bind` enables **"a design where problems don't occur."** This is the very beauty of functional programming.
159159

160-
`.bind` is backed by the mathematical laws of Monad, and its behavior is completely predictable. **With the powerful abstraction of the Monad, developers can completely control side effects (in this case, the unintended propagation of intermediate states) and safely describe only the essential computation.
160+
`.bind` is backed by the mathematical laws of Monad, and its behavior is completely predictable. **With the powerful abstraction of the Monad, developers can completely control side effects (in this case, the unintended propagation of intermediate states) and safely describe only the essential computation.**
161161

162162
The `Timeline` library, being faithful to theory, naturally provides not only `.map` but also `.bind`. This was not intentionally designed with the thought, "this can solve the diamond problem." The Monad algebraic structure is there from the beginning.
163163

src/content/docs/ja/book/unit-5/section-3/3-bind.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ const D = A.bind(a => {
150150

151151
しかし、`bind`**「問題が起きない設計」** を可能にします。これこそが、関数型プログラミングの美しさそのものです。
152152

153-
`.bind`はMonad則という数学的な法則に裏打ちされており、その振る舞いは完全に予測可能です。**モナドという強力な抽象化によって、開発者は副作用(この場合は中間状態の意図しない伝播)を完全に制御し、本質的な計算だけを安全に記述できるのです。
153+
`.bind`はMonad則という数学的な法則に裏打ちされており、その振る舞いは完全に予測可能です。**モナドという強力な抽象化によって、開発者は副作用(この場合は中間状態の意図しない伝播)を完全に制御し、本質的な計算だけを安全に記述できるのです。**
154154

155155
`Timeline`ライブラリは、理論に忠実なので、自然な流れで、`.map`だけでなく`.bind`を提供しています。これは別にわざわざ「ダイアモンド問題はこれで解決可能だ」と意図して設計したものではありません。Monadという代数構造は最初からそこにあるのです。
156156

@@ -168,7 +168,7 @@ const D = A.bind(a => {
168168

169169
## `DependencyCore`
170170

171-
この動的な依存関係の切り替えは、どのようにして実現されているのでしょうか。その答えは、`Timeline`ライブラリの心臓部である**`DependencyCore`**にあります。
171+
この動的な依存関係の切り替えは、どのようにして実現されているのでしょうか。その答えは、`Timeline`ライブラリの心臓部である **`DependencyCore`** にあります。
172172

173173
`DependencyCore`は、アプリケーション内に存在する全ての`Timeline`間の依存関係を記録・管理する、目に見えない中央管理システムです。`.map()``.link()`が静的な依存関係を登録するのに対し、`.bind()`はこの`DependencyCore`をより高度に利用します。
174174

0 commit comments

Comments
 (0)