回答編集履歴
1
エラー修正
test
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
AとBは目的に応じて使い分けるものであって、
|
2
2
|
|
3
|
-
どちらのほうが好ましいですか?という類のものじゃない。
|
3
|
+
どちらのほうが好ましいですか?という類のものじゃないね。
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
まずはAを選択すべき例を挙げてから、Bの使い方を見ていこうか。
|
8
8
|
|
9
|
-
台形の面積
|
9
|
+
例として台形の面積を求める関数を、三角形の面積のロジックを流用して作る事をやってみる。
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -58,9 +58,9 @@
|
|
58
58
|
|
59
59
|
従って前者と書くのが自然であり、後者はノイズが混じっている。
|
60
60
|
|
61
|
-
要するに簡単な事
|
61
|
+
要するに簡単な事を難しくやってしまっている悪い例になってしまうわけだね。
|
62
62
|
|
63
|
-
|
63
|
+
結局、これが自然。
|
64
64
|
|
65
65
|
|
66
66
|
|
@@ -94,19 +94,19 @@
|
|
94
94
|
|
95
95
|
ベースになる関数が沢山あってその中から選択する仕組みでなければならない。
|
96
96
|
|
97
|
-
カリー化や部分適用を利用して、関数の中身で同じように叩いても動作が変わるとか
|
97
|
+
カリー化や部分適用を利用して、関数の中身で同じように叩いても動作が変わるとかね
|
98
98
|
|
99
99
|
|
100
100
|
|
101
101
|
この辺は使い方も事情もDIと全く一緒。
|
102
102
|
|
103
|
+
オブジェクトになってコンストラクタメソッドの引数になるか、
|
104
|
+
|
103
|
-
|
105
|
+
カリー化でもされて第一引数の関数として挿入されるかの違いでしかない。
|
104
106
|
|
105
107
|
|
106
108
|
|
107
|
-
こうして作ったBの関数は最後に何らかの引数を求めるケースが多くて、
|
108
109
|
|
109
|
-
カリー化や部分適用等の関数を返す関数と併用して宣言し直す感じで使うケースが多い。
|
110
110
|
|
111
111
|
|
112
112
|
|
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
const triangle = R.curry((width, height) => width * height / 2)
|
128
128
|
|
129
|
-
const trapezoid = R.curry(fn, upperBase, lowerBase, height) =>
|
129
|
+
const trapezoid = R.curry((fn, upperBase, lowerBase, height) =>
|
130
130
|
|
131
131
|
R.pipe(
|
132
132
|
|