public override IEnumerable <Variable> GetFreeVariables() { foreach (Variable variable in function.GetFreeVariables()) { yield return(variable); } foreach (Variable variable in parameter.GetFreeVariables()) { yield return(variable); } }
public FunctionDefinition(string name, FunctionTerm function, Syntax syntax) { if (name == null) { throw new ArgumentNullException("name"); } if (function == null) { throw new ArgumentNullException("function"); } if (function.GetFreeVariables().Any()) { throw new ArgumentException("cannot create definition containing free variables."); } if (syntax == null) { throw new ArgumentNullException("syntax"); } this.name = name; this.function = function; this.syntax = syntax; }