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

回答編集履歴

1

段落分け

2017/09/22 00:24

投稿

maisumakun
maisumakun

スコア146654

answer CHANGED
@@ -5,4 +5,6 @@
5
5
 
6
6
  といった、トンチ的な解決策でも取らない限り、「状態を変数に保管せずに進める」というのは**現実的ではありません**。
7
7
 
8
- というのも、Haskellのような純粋関数型言語(変数の再代入どころか、破壊的な変更も存在しない)で状態を表現する場合、「『前の状態』を引数として、『次の状態』を返す」という方法を取って、コード上からは状態依存を追い出しているのです。一方でJavaScriptの場合、イベントハンドラの実行時には、クロージャで生き残った変数以外リセットされてしまって、「前の状態を渡す」ということができないので、状態を引き継ぐにはどこかで(破壊的な方法で)保存しておいたものを読み取るほかないのです。
8
+ というのも、Haskellのような純粋関数型言語(変数の再代入どころか、破壊的な変更も存在しない)で状態を表現する場合、「『前の状態』を引数として、『次の状態』を返す」という方法を取って、コード上からは状態依存を追い出しているのです。
9
+
10
+ 一方でJavaScriptの場合、イベントハンドラの実行時には、クロージャで生き残った変数以外リセットされてしまって、「前の状態を渡す」ということができないので、状態を引き継ぐにはどこかで(破壊的な方法で)保存しておいたものを読み取るほかないのです。