def unpickle_function(name, nargs, latex_name, conversions, evalf_params_first, pickled_funcs): r""" This is returned by the ``__reduce__`` method of symbolic functions to be called during unpickling to recreate the given function. It calls :meth:`function_factory` with the supplied arguments. EXAMPLES:: sage: from sage.symbolic.function_factory import unpickle_function sage: nf = unpickle_function('f', 2, '\\foo', {'mathematica':'Foo'}, True, []) sage: nf f sage: nf(1,2) f(1, 2) sage: latex(nf(x,x)) \foo\left(x, x\right) sage: nf._mathematica_init_() 'Foo' sage: from sage.symbolic.function import pickle_wrapper sage: def evalf_f(self, x, parent=None, algorithm=None): return 2r*x + 5r sage: def conjugate_f(self, x): return x/2r sage: nf = unpickle_function('g', 1, None, None, True, [None, pickle_wrapper(evalf_f), pickle_wrapper(conjugate_f)] + [None]*8) sage: nf g sage: nf(2) g(2) sage: nf(2).n() 9.00000000000000 sage: nf(2).conjugate() 1 """ funcs = [unpickle_wrapper(_) for _ in pickled_funcs] args = [name, nargs, latex_name, conversions, evalf_params_first] + funcs return function_factory(*args)