{
function x(x,y) {
	return function() {
		return x-y;
	};
};
var y = x(4,5);
var z = x(3,5);

puts( y() ); // = -1
puts( z() ); // = -2
}

今回の僕はいつもとは違う!!引数の順番間違えなかったよ。


前回のは、あれから、

var obj = object {
       function retretthis () {
		return function () { return this; };
       }
}

var retthis = obj.retretthis();
retthis();

こんなときは何が戻るのん?とか、

var obj = object {
       function retretthis () {
		return function () { return this; };
       }
}

var obj2 = object {
	var retthis = obj.retretthis();
}
obj2.retthis();

こーんなときは何が戻るのん?とか、考えてると、何が自然になるのかわからなくなってきて、わからんから、実行効率が一番良いやつにしよう、ということで、JavaScript風に、「何があっても関数はthisを保持しない」っていうふうにすることにした。


必要なときは、

function makemethod(obj,method) { 
	return function(args) { obj.method(args); }
}

ってやれば問題無いし。引数の数がうまくいかないけど…


何をどうしたらいいかわからんときは、実行効率が一番良いやつを選ぶ、というのは良いと思うのだが、どうだろうか。
実行効率が良いやつは、単純な仕組みになっているだろう。多分。多少使いにくかったとしても、ルールが単純ならば、困ることはない…はずだ、ということで。
あと、実行効率が良い、っていうのはそれ自身メリットになると思うし。