¿Cuál es el equivalente de C#de la función de mapa en Haskell?
(5)
la función de mapa en Haskell tiene dos parámetros de entrada. El primer parámetro es una función y el segundo parámetro es una lista. La función de mapa aplica la función pasada como parámetro de entrada a todos los elementos en la lista y devuelve una nueva lista.
¿Hay un C # equivalente a esta funcionalidad?
¿Qué tal ConvertAll ? Parece más cercano al mapa.
Debido a que Select
y Select
SelectMany
ya fueron mencionados, responderé a una pregunta adicional que no hizo: fold
se encuentra como Aggregate .
Ahora todos los que lean esto deberían estar completamente equipados para ser ese tipo que escribe Language X usando idiomas idiomáticos de Language Y ... así que por el bien de sus compañeros programadores de C #, no se dejen llevar demasiado .
Otra alternativa para Select
y SelectMany
es escribir su propio método de extensión.
public static IEnumerable<U> Map<T, U>(this IEnumerable<T> s, Func<T, U> f)
{
foreach (var item in s)
yield return f(item);
}
¡Gracias a Wes Dyer por este dulce método de extensión! :) Ver la post para más detalles.
Y para responder a una pregunta que no hizo, el equivalente de Haskell de vincular la mónada "secuencia" se llama SelectMany en C #. Vea el gran artículo de Wes Dyer sobre esto para más detalles:
http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx
Select
Vea mi pregunta here (solo si tiene curiosidad, ya que no está directamente relacionada).