private static object Map(Context context, IList<object> arguments)
{
IFunction function = (IFunction)arguments[0];
List list = (List)arguments[1];
IList<object> elements = new List<object>();
while (list != null)
{
elements.Add(function.Apply(context, new object[] { list.Head }));
list = (List)list.Tail;
}
return List.MakeList(elements);
}