Begin forwarded message:

> From: Omari Stephens <xsdg / mit.edu>
> Date: December 2, 2007 9:28:10 PM CST
> To: submission / rubyquiz.com
> Subject: Please Forward: Ruby Quiz Submission
>
> A solution to quiz #148
>
> class String; def flatten_infix(foo); self; end; end
> class Array
>         def flatten_infix(up_op = :top)
>                 op = self[1]
>                 flat = self.map {|el| el.flatten_infix(op)}.join(" ")
>
>                 if($ops[up_op] < $ops[op])
>                         flat = "(" + flat + ")"
>                 else
>                         flat
>                 end
>         end
> end
>
> $ops = {'*' => 0, '/' => 0, '+' => 1, '-' => 1, :top => 2}
> puts ARGV[0].split.inject([]) {
>         |stack, el|
>         stack << if($ops.has_key?(el))
>                 [stack.pop, el, stack.pop].reverse
>         else
>                 el
>         end
>         }.first.flatten_infix
>
> --xsdg