// public string Name; // public string ArgumentName; // public Expression Body; // public Expression Recipient; override public int Evaluate(EvaluationState state) { state.BindFunction(Name, this); var result = Recipient.Evaluate(state); return(result); }
// public string Name; // public Expression Expression; // public Expression Recipient; override public int Evaluate(EvaluationState state) { var value = Expression.Evaluate(state); state.BindVariable(Name, value); var result = Recipient.Evaluate(state); return(result); }