は?

型名を取得する関数はあるんだから
integerという型名がわかったら、
あとはeval('add_' + name_a + '_' name_b + '()')
を実行するだけじゃねーかw