自作言語 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を導入しておけば良さそうとしか考えていない。