def symbolic_function(variables, *args, **kwds):
def result(f):
def evalf_func(self,x,parent=None):
if parent == None:
return f(x)
else:
return parent(f(x))
return function(f.__name__, variables, evalf_func=evalf_func, *args, **kwds).operator()
return result