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

回答編集履歴

1

ちょっとだけ追加

2017/09/22 11:45

投稿

raccy
raccy

スコア21807

answer CHANGED
@@ -74,7 +74,7 @@
74
74
  もうひとつ有効な方法はFRPを使用することです。ただこちらもJavaScriptで標準で用意されているわけでは無いため、[RxJS](http://reactivex.io/rxjs/)等のライブラリを使用する必要があるでしょう。
75
75
 
76
76
  Q: とても面倒そうに思えます。本当にこんなことをしているのですか?
77
- たぶん、**素のJavaScriptでは誰もしていません。**と言っても、状態を渡していくという考え自体が駄目というわけではありません。例えば、Reactのstateも(新たなstateを次々に渡していくという)大まかな考え方は一緒です。stateをまとめて管理できるようにしたのがReduxですから、同じく、状態を渡していっているだけとも言えます。
77
+ たぶん、**素のJavaScriptでは誰もしていません。**と言っても、状態を渡していくという考え自体が駄目というわけではありません。例えば、Reactのstateも(新たなstateを次々に渡していくという)大まかな考え方は一緒です。stateをまとめて管理できるようにしたのがReduxですから、同じく、状態を渡していっているだけとも言えます。つまり、関数型プログラミングを意識しているライブラリの中には、このような考え方を採用して作っていると言うことです。そして、それらのライブラリを使う場合は、それほど面倒なことをしなくてもすむようになっています。
78
78
 
79
79
  Q: 結局どうしたら良いの?
80
80
  まずもって、JavaScriptは関数型プログラミングがしやすい言語というわけでは**ありません**。部分的に関数型プログラミングの考え方を取り入れてはいますが、全てにおいて簡単にできるという話ではないのです。特に、こういった状態変化についても関数型プログラミングで実装したいのであれば、RxJSのようなライブラリやPureScriptのようなaltJSが必要になるでしょう。