Code/Expressions/FunctionExpression.cs
using System;
using System.Collections.Generic;
namespace Expressive.Expressions
{
internal class FunctionExpression : IExpression
{
private readonly Func<IExpression[], IDictionary<string, object>, object> function;
private readonly string name;
private readonly IExpression[] parameters;
internal FunctionExpression(string name, Func<IExpression[], IDictionary<string, object>, object> function, IExpression[] parameters)
{
this.name = name;
this.function = function;
this.parameters = parameters;
}
#region IExpression Members
public object Evaluate(IDictionary<string, object> variables)
{
return this.function(this.parameters, variables);
}
#endregion
}
}