たらいまわし関数
という記事を見て、たらいまわし関数って何だろうと。
まったく知らなかったので、あえて調べず、プログラムを組むでもなく、手作業で意味を解析してみました。
いくつかの具体例を求めてみたり、証明を試みたりしたわけですけれども。どうしても意味がわからない。解答っぽいものは得られたものの、何のための関数がさっぱりわからない。
仕方なしにググって見ると、いきなり
orz
いや、うすうす感づいてましたけどね。
明らかに無駄がありすぎだろうと。
多分わざと複雑にしてるんだろうと。
気づいてはいましたけれども!
A4用紙いっぱいに手計算やら証明やらを展開した手前認めたくはなかった!!
結局のところ、こいつはベンチマーク関数らしいです。
再帰関数が爆発的に呼び出されるため、処理に時間がかかると。
えぇ実感してます。
ちなみに得られた結果:
tak(A, B, C) { if (A <= B) { return B; } else { if (B <= C) return C; else return A; } }
俺の脳のベンチマーク結果は泣きそうなので書きません。