tarosukeの日記: 代入ドリブンプログラミング
日記 by
tarosuke
「代入」には二種類ある。常数からの代入と、変数からの代入だ。もし式が常数にのみ依存しているならその式は常数であるからコンパイル時に計算できる。オブジェクトの内部状態に依存した値や入力や変数指定したメモリ上の値は常に変数だ。...と、ここで一つ、主にI/Oを想定しているが、いつ入力されるのかというのが問題になる。読み直さなきゃ値は変わらんからな。
...例えばC++っぽく「hoge = thePort.in」と書いたとして、hogeに対して評価を要求する文法があれば良いのかもしれん...んー...条件判断が評価要求を起こすということで大丈夫なような気がする。代入ドリブンなのに関数型みたいな真似をする事になるけど。でも、評価要求によって入力された値に依存するオブジェクトが他にもあった場合、入力された値は代入されたわけで、当然そっちも再評価されなきゃならんわけだけど、評価要求を起こしたのが繰り返し集合だった日には...。
つまり「thePort.in」してるところが他にもあるとして、「while(!thePort.in)」すると各々の繰り返しで全ての「thePort.in」してる式が毎回全部再評価されちゃう。手続き的に考えると評価要求を起こしている式に繋がる所だけ再評価すりゃいいけど...むぅ。
代入ドリブンプログラミング More ログイン