自作言語 oak その3
func f:var int x:var int y:var int = x + y; var a = 3; let g = f a; a = 5; writeln ( g 7 ) // 10? 12?
このようなコードを考える。最後に表示されるのは 10 になるか 12 になるか?
個人的には、このコードのように単純に書いた場合は 10 を表示したい(→しない可能性大、oak その4参照)。つまり、a の値を g に記録しておくことにする。
もちろん、12 と表示されるようにもしたいので、それについての新しい構文(キーワード)を考えたいのだが。今の所D言語と同じlazyを導入しておけば良さそうとしか考えていない。