式の二分木を作ってから、右回りで帰りがけ順(post order)で評価するみたいね。 def f(x) ? x: return x end ? f(f(1)-f(2))/f(3)/f(f(4)/f(5)) なお、こういう微妙な仕様は結構ふわふわしてることが多いから、これに依存するようなコードは書かないのが吉。