タワムレCPS

タワムレに継続渡しスタイル(CPSだっけ?)っぽいコードを書いてみる。なんだかオモシロイ。

# if.rb
def _if(cond_block, if_block, else_block)
  if cond_block.call
    if_block.call
  else
    else_block.call
  end
end

print "1 + 2 ? "
n = gets.to_i
_if(lambda { n == 3 },
  lambda { puts "あたり" },
  lambda { puts "はずれ" })
(*´Д`) > ruby if.rb
1 + 2 ? 3(←答えを入力する)
あたり
(*´Д`) >