第30回Ruby/Rails勉強会に参加しました
石川さんのとか、Yuguiさんのとかは、多分他の方がレポートしていただけることでしょう(ヲイ)
というわけで、初級者レッスン。
逆ポーランド記法の計算機にぞっこん。
というわけで、回答。中途半端にゴルフ(笑)
def rpn(e) c = e.pop case(c) when'+';return rpn(e)+rpn(e) when'-';return rpn(e)-rpn(e) when'*';return rpn(e)*rpn(e) when'/';return rpn(e)/rpn(e) else ;return c.to_i end end def main;puts rpn(ARGV);end if __FILE__ == $0;main;end
ちなみに、コレをちょこっと変えると、ポーランド記法の計算機になります。
def rpn(e);return rpn2(e.reverse);end def rpn2(e) c = e.pop case(c) when'+';return rpn2(e)+rpn2(e) when'-';return rpn2(e)-rpn2(e) when'*';return rpn2(e)*rpn2(e) when'/';return rpn2(e)/rpn2(e) else ;return c.to_i end end def main;puts rpn(ARGV);end if __FILE__ == $0;main;end