Общая карта / Сокращение расширений списка в C #

Я пишу несколько расширений для имитации карты и сокращения функций в Лиспе.

public delegate R ReduceFunction<T,R>(T t, R previous);
public delegate void TransformFunction<T>(T t, params object[] args);

public static R Reduce<T,R>(this List<T> list, ReduceFunction<T,R> r, R initial)
{
     var aggregate = initial;
     foreach(var t in list)
         aggregate = r(t,aggregate);

     return aggregate;
}
public static void Transform<T>(this List<T> list, TransformFunction<T> f, params object [] args)
{
    foreach(var t in list)
         f(t,args);
}

Функция преобразования будет сокращать расходы, как:

foreach(var t in list)
    if(conditions && moreconditions)
        //do work etc

Имеет ли это смысл? Может ли быть лучше?

Ответы на вопрос(5)

Ваш ответ на вопрос