teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

10

2017/10/11 18:33

投稿

退会済みユーザー
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

2017/10/11 18:33

投稿

退会済みユーザー
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つ出てくる分には当たり前??

8

2017/10/11 18:30

投稿

退会済みユーザー
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

2017/10/11 18:29

投稿

退会済みユーザー
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

2017/10/11 18:23

投稿

退会済みユーザー
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

2017/10/11 18:22

投稿

退会済みユーザー
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

2017/10/11 18:12

投稿

退会済みユーザー
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))));

2017/10/11 18:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,6 @@
15
15
  カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?
16
16
 
17
17
  ```
18
- const compose = (log, compare, sum, multiply) => (list) => log(compare(sum(multiply(list, 2))));
18
+ const compose = (log, compare, sum, multiplyBy) => (list) => log(compare(sum(multiplyBy(list))));
19
19
  ```
20
20
  特に、この行の関数で他の関数の結果をラップしまくってるところとか、こんなことするんでしたっけ?

2

a

2017/10/11 18:07

投稿

退会済みユーザー
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 compose = (log, compare, sum, multiply) => (list) => log(compare(sum(multiply(list, 2))));
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, multiply)([1, 2, 3, 4, 5]);
12
+ compose(displayLog, isLargerThan(10), sum, multiplyBy(10))([1, 2, 3, 4, 5]);
12
13
  ```
13
14
 
14
15
  カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?

1

isLargerThan(10)

2017/10/11 18:06

投稿

退会済みユーザー
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, isLargerThan10, sum, multiply)([1, 2, 3, 4, 5]);
11
+ compose(displayLog, isLargerThan(10), sum, multiply)([1, 2, 3, 4, 5]);
13
12
  ```
14
13
 
15
14
  カーリー化や関数合成が本を読んだだけでは身につかなさすぎるので、コードを実際に書いてみようと思って書いてみたのですが、関数型プログラミングっぽくなってますでしょうか?