Ответ 1
Select
Смотрите мой вопрос здесь (Только если вам интересно, поскольку это не связано напрямую).
Функция отображения в Haskell имеет два входных параметра. Первый параметр - это функция, а второй параметр - список. Функция map применяет функцию, переданную как входной параметр ко всем элементам в списке, и возвращает новый список.
Существует ли эквивалент С# для этой функции?
Select
Смотрите мой вопрос здесь (Только если вам интересно, поскольку это не связано напрямую).
Другой альтернативой Select
и SelectMany
является написать собственный метод расширения.
public static IEnumerable<U> Map<T, U>(this IEnumerable<T> s, Func<T, U> f)
{
foreach (var item in s)
yield return f(item);
}
Спасибо Wes Dyer за этот сладкий метод расширения!:) Подробнее см. .
Поскольку уже были упомянуты Select
и SelectMany
, я отвечу на дополнительный вопрос, который вы не задали: fold
находится как Aggregate.
Теперь все, кто читает это, должны быть полностью экипированы, чтобы стать тем Гаем, который пишет язык X, используя языковые идиомы Y... так что ради ваших товарищеских программистов на С# не увлекайтесь.
И чтобы ответить на вопрос, который вы не спросили, эквивалент Haskell привязки "последовательности" монады называется SelectMany в С#. См. Статью Wes Dyer об этой статье:
http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx
Как насчет ConvertAll? Он выглядит как Ближайший к карте.