if の話も解決できた気がした

Object then = method(v, v)
Object elseif = method(
  self then = method(
    self then = method(v, v)
    self
  )
  self
)
Object else = method(self)

modeStr := "640x480"
//modeStr := "800x640"
//modeStr := "1024x768"

mode := if (modeStr == "640x480") then (
  write("VGA\n")
  1
) elseif (modeStr == "800x640") then (
  write("SVGA\n")
  2
) else (
  write("XGA\n")
  3
)
write(mode, "\n")

if (mode) then (
  write("mode is set!\n")
)

これで、 elseif と then がセットで呼ばれる限りにおいては、一連の if の帰り値が普通のオブジェクトであることが保障されている、と思う。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h