Passing an operator to a function?

ruby

Solution

Two possibilities:

Take method/operator name as a symbol:

def sum a,b,operator
 a.send(operator, b)
end
sum 42, 23, :+

Or the more general solution: Take a block:

def sum a,b
  yield a,b
end
sum 42, 23, &:+

Problem

Perhaps this just sounds ridiculous but I'm wondering is this possible with Ruby? Basically I have a function... ``` def add a,b c = a + b return c end ``` I'd like to be able to pass the "+" or another operator e.g "-" to the function so that it'd be something like... ``` def sum a,b,operator c = a operator b return c end ``` is this possible?

Original source