質問編集履歴
10
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,4 +52,4 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
|
55
|
-
例えばこんな感じで、単純に条件式を中で書くしかないですよね?条件式が複数、一つの関数内に出てきてしまうと手続き的になってしまうから好ましくないってだけであって、1つ出てくる分には当たり前??
|
55
|
+
例えばこんな感じで、単純に条件式を中で書くしかないですよね?条件式が複数、一つの関数内に出てきてしまうと手続き的になってしまうから好ましくないってだけであって、1つ出てくる分には当たり前??いや、引数に渡ってきた値によって処理を変えるのをその該当関数で判断させるのは、本来の仕事意外のことも担うことになるから好ましくない???
|
9
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,4 +52,4 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
|
55
|
-
単純に条件
|
55
|
+
例えばこんな感じで、単純に条件式を中で書くしかないですよね?条件式が複数、一つの関数内に出てきてしまうと手続き的になってしまうから好ましくないってだけであって、1つ出てくる分には当たり前??
|
8
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,3 +43,13 @@
|
|
43
43
|
|
44
44
|
|
45
45
|
あと、例えば、10以上じゃない場合はdisplayLogを実行しないみたいなことをするには、どのようにすれば良いのでしょうか?
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
```
|
50
|
+
|
51
|
+
const displayLog = (value) => { value && console.log(value)};
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
単純に条件文を中で書くしかないですよね?条件文が複数、一つの関数内に出てきてしまうと手続き的になってしまうから好ましくないってだけであって、1つ出てくる分には当たり前??
|
7
s
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
```JavaScript
|
2
2
|
|
3
|
-
const sum = (list) => list.reduce((accumulator, item) => { return accumulator + item}, 0);
|
3
|
+
const sum = (list) => list.reduce((accumulator, item) => { return accumulator + item }, 0);
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
const displayLog = (value) => { console.log(value)};
|
15
|
+
const displayLog = (value) => { console.log(value) };
|
16
16
|
|
17
17
|
|
18
18
|
|
6
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?コード自体は動作確認済みなので動きますが。
|
31
|
+
カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?コード自体は動作確認済みなので動きますが。(単なる練習で書いたので実用的では全くないです。。。)
|
32
32
|
|
33
33
|
|
34
34
|
|
5
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,13 +20,15 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
+
// trueが期待通りに出力されます。動作確認済み。
|
24
|
+
|
23
25
|
compose(displayLog, isLargerThan(10), sum, multiplyBy(10))([1, 2, 3, 4, 5]);
|
24
26
|
|
25
27
|
```
|
26
28
|
|
27
29
|
|
28
30
|
|
29
|
-
カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?
|
31
|
+
カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?コード自体は動作確認済みなので動きますが。
|
30
32
|
|
31
33
|
|
32
34
|
|
4
あ
test
CHANGED
File without changes
|
test
CHANGED
@@ -37,3 +37,7 @@
|
|
37
37
|
```
|
38
38
|
|
39
39
|
特に、この行の関数で他の関数の結果をラップしまくってるところとか、こんなことするんでしたっけ?
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
あと、例えば、10以上じゃない場合はdisplayLogを実行しないみたいなことをするには、どのようにすれば良いのでしょうか?
|
3
const compose = (log, compare, sum, multiplyBy) => (list) => log(compare(sum(multiplyBy(list))));
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
```
|
34
34
|
|
35
|
-
const compose = (log, compare, sum, multiply) => (list) => log(compare(sum(multiply(list
|
35
|
+
const compose = (log, compare, sum, multiplyBy) => (list) => log(compare(sum(multiplyBy(list))));
|
36
36
|
|
37
37
|
```
|
38
38
|
|
2
a
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,9 @@
|
|
2
2
|
|
3
3
|
const sum = (list) => list.reduce((accumulator, item) => { return accumulator + item}, 0);
|
4
4
|
|
5
|
-
const multiply = (list, byHowMuch) => list.map((item) => item * byHowMuch);
|
6
5
|
|
7
6
|
|
8
|
-
|
9
|
-
const
|
7
|
+
const multiplyBy = (byHowMuch) => (list) => list.map((item) => item * byHowMuch);
|
10
8
|
|
11
9
|
|
12
10
|
|
@@ -18,7 +16,11 @@
|
|
18
16
|
|
19
17
|
|
20
18
|
|
19
|
+
const compose = (log, compare, sum, multiplyBy) => (list) => log(compare(sum(multiplyBy(list))));
|
20
|
+
|
21
|
+
|
22
|
+
|
21
|
-
compose(displayLog, isLargerThan(10), sum, multiply)([1, 2, 3, 4, 5]);
|
23
|
+
compose(displayLog, isLargerThan(10), sum, multiplyBy(10))([1, 2, 3, 4, 5]);
|
22
24
|
|
23
25
|
```
|
24
26
|
|
1
isLargerThan(10)
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,15 +12,13 @@
|
|
12
12
|
|
13
13
|
const isLargerThan = (value) => (comparedValue) => comparedValue > value;
|
14
14
|
|
15
|
-
const isLargerThan10 = isLargerThan(10)
|
16
|
-
|
17
15
|
|
18
16
|
|
19
17
|
const displayLog = (value) => { console.log(value)};
|
20
18
|
|
21
19
|
|
22
20
|
|
23
|
-
compose(displayLog, isLargerThan10, sum, multiply)([1, 2, 3, 4, 5]);
|
21
|
+
compose(displayLog, isLargerThan(10), sum, multiply)([1, 2, 3, 4, 5]);
|
24
22
|
|
25
23
|
```
|
26
24
|
|