たらいまわし関数の停止性

http://www.jmuk.org/d/?path=2006/05/01#d01t01
IO()さんにおしえてもらったリンクをたどって。
手続き型で書くとこんなかんじらしい。


function tak(x, y, z) {
if(x < y)
return y;
else if(y < z)
return z;
else
return x;
}
実際に動かしてみると、確かにたらいまわし関数と同じ値が返ってくる。

…でも、「なぜか」はまだ理解できず。