public NEVariableConstant(string name, string description, Func <object> valueFunc, NEVariableInitializer initializer = null) : base(name, description, initializer) => this.valueFunc = valueFunc;
public NEVariableList(string name, string description, Func <List <object> > listFunc, NEVariableInitializer initializer = null) : base(name, description, initializer) => this.listFunc = listFunc;
public NEVariableSeries(string name, string description, Func <int, object> series, NEVariableInitializer initializer = null) : base(name, description, initializer) => this.series = series;
public static NEVariable Series <T>(string name, string description, Func <int, T> series, NEVariableInitializer initializer = null) => new NEVariableSeries(name, description, index => series(index), initializer);
public static NEVariable List <T>(string name, string description, Func <IEnumerable <T> > list, NEVariableInitializer initializer = null) => new NEVariableList(name, description, () => list().Cast <object>().ToList(), initializer);
public static NEVariable Constant <T>(string name, string description, Func <T> value, NEVariableInitializer initializer = null) => new NEVariableConstant(name, description, () => value(), initializer);
public NEVariable(string name, string description, NEVariableInitializer initializer = null) { Name = name; Description = description; this.initializer = initializer; }