原です。

|あ伊藤です.本質と関係ありませんが...

|こんなのはいかが? :-)
|
|class IF_exec
|  def initialize(z)
|    @else = z
|  end
|  def ELSE
|    if @else then
|      yield
|    end
|  end
|end
|
|def IF (cond)
|  if cond then
|    yield
|    return IF_exec.new(false)
|  else
|    return IF_exec.new(true)
|  end
|end

なるほどこれならまるで if then else に見えますね!
#そういえば前に case の変種を同じようにして作った様な覚えが、、、


返歌。こういうのはどうでしょう。(^^

class Object
  def IF cond; if cond then yield else Object end; end
  def ELSE; self; end
  def Object.ELSE; yield; end
end

while gets
  x = $_.to_i
  IF(x%2 == 0) {
    print "even number\n"
  }.ELSE {
    print "odd number\n"
  }
end


ところで、

  IF(x%2 == 0) {

を

  IF (x%2 == 0) {

と書くと parse error になるのだなあ。