関数型と比較しつつ

関数型プログラミングにおける式は、値と値の関係を表します。


一方リアクティブプログラミングでは、式は、振る舞いと振る舞いの関係を表します。

純粋な関数型プログラミングでは、参照透明であること、つまり式を値で置き換えてもプログラムの意味が変わらないことが求められます。
変数の再代入を許すと、変数や式を値で置き換えたときにつじつまがあわなくなってしまいます。
なので純粋関数型プログラミングでは変数の再代入を許さないわけです。
一方、リアクティブプログラミングでは振る舞いを扱いますが、
振る舞いも、ある一瞬を切り取れば、ただの値とかわりません。
振る舞い同士の関係は、ただの値同士の関係であり、式は参照透明なものになっています。
そして、時間がたって振る舞いが変化した場合は、値を再計算して他の振る舞いを更新することでつじつまを合わせるわけです。

リアクティブプログラミングでは、この更新の度に再計算するという単純なアイデアにより、宣言的な式により状態の関係性を記述することが可能になるのです。
とは言っても、実際にすべての値を再計算していては時間がかかって仕方ないので、いくつか工夫をします。