Функция map в Haskell имеет два входных параметра. Первый параметр - это функция, а второй параметр - это список. Функция карты применяет функцию, переданную в качестве входного параметра, ко всем элементам в списке и возвращает новый список.
Есть ли в C # эквивалент этой функциональности?
Ответы:
Select
Справочник MSDN
См. Мой вопрос здесь (только если вам интересно, так как он не имеет прямого отношения).
источник
Другой альтернативой
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); }
Спасибо Уэсу Дайеру за этот чудесный метод наращивания! :) Подробнее см. Пост .
источник
Поскольку
Select
иSelectMany
были уже упомянуты, я отвечу на дополнительный вопрос, который вы не задавали:fold
найдено как Aggregate .Теперь каждый, кто читает это, должен быть полностью готов к тому, чтобы стать Тем Парнем, который пишет Язык X, используя идиомы Языка Y ... так что ради других программистов на C # не слишком увлекайтесь.
источник
И чтобы ответить на вопрос, который вы не задавали, эквивалент связывания монады «последовательности» в Haskell называется SelectMany в C #. См. Замечательную статью Уэса Дайера по этому поводу:
http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx
источник
Как насчет ConvertAll ? Похоже, "Ближайший к карте".
источник