まあ、他の2つは試せばわかるとして、動的プログラミングのくだりはたとえばこんな感じなんじゃないかと

class C
def foo; puts "foo"; end
def bar; puts "bar"; end
def baz; puts "baz"; end
def main(arr)
arr.each do |name|
__send__(name)
end
end
end

C.new.main(['foo', 'baz', 'foo'])


・ 「なんかスゴいからこれどっかで使おう!」とか考えない
・ 手段のために目的探したりしない、乱用厳禁
・ どうしても困ったときにはたぶんあなたの前に現れてくれるサンタさん