public Func nest(Func[] params) { switch (m_type) { case VAR: return params[m_index].copy(); case CONST: return this; case UNOP: return new Func(m_uop, m_right.nest(params)); case BINOP: return new Func(m_left.nest(params), m_bop, m_right.nest(params)); default: return null; } }
public SpecialFunc nest(Func[] params) { return new SpecialFunc(m_utype, m_func.nest(params)); }
public Func evaluate(Func[] paramList) { return m_function.nest(paramList); }