def make_binary_operator_eval(oper, f, g):
 return (lambda inputs, params: tuple((oper(x, y) for (x, y) in zip(f(inputs, params), g(inputs, params)))))

def make_binary_operator_eval ( oper , f , g ) : return ( lambda inputs , params : tuple ( ( oper ( x , y ) for ( x , y ) in zip ( f ( inputs , params ) , g ( inputs , params ) ) ) ) )
given a binary operator oper and two callables f and g which accept the same arguments .