The Elm Architecture を自分流に理解してみた。
引用: 図解 The Elm Architecture の流れ - Qiita
Elmの枠内
Elmの枠内は、次の3つの要素で構成。
- init(モデルの初期値をつくる)
- view(モデルを表示する)
- update(モデルを更新する)
そして表示->更新->表示->更新をぐるぐる回すだけのとてもコンパクトな要素だけになっている。
Elm枠外のRuntime Systemは、ユーザーとのやり取りしているという点でみると、MVCアーキテクチャにおけるControllerに近い。
でもTEAのRuntime Systemは、Controllerより、ユーザーのやり取りだけでなく、とても明確な役割がある。
この純粋関数型特有のコンパクトで理想系な形にできているのは、Runtime Systemのおかげなのだ!
Runtime Systemは、Elm枠内を純粋関数だけの世界にするための 縁の下の力持ち なのである。
純粋関数
入力と出力だけ。Elmは純粋関数型プログラミング言語だから、数学の恩恵をいっぱい得てるとか!(詳しいことは知らない)
非純粋関数(よくあるプログラミング言語の関数)
入力と出力だけじゃなくて、副作用もある。
この副作用のせいで、出力がわかりにくくなる。
どこか気づきもしない変数の値をかえてしまうことがよくある。