void SetPerform(String[] arguments, Expression body)
{
_perform = (context, argument) =>
{
var symbols = new Dictionary<String, Value>();
var av = new ArgumentsValue().Append(argument);
if (av.Length != arguments.Length)
{
throw new YAMPArgumentNumberException("Anonymous function", av.Length, arguments.Length);
}
for (var i = 0; i < arguments.Length; i++)
{
symbols.Add(arguments[i], av.Values[i]);
}
return body.Interpret(symbols);
};
}