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