La función map 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 de la lista y devuelve una nueva lista.
¿Existe un equivalente en C # para esta funcionalidad?
Respuestas:
Select
Referencia de MSDN
Vea mi pregunta aquí (solo si tiene curiosidad, ya que no está directamente relacionada).
fuente
Otra alternativa a
Select
ySelectMany
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 Wes Dyer por este dulce método de extensión! :) Ver publicación para más detalles.
fuente
Dado que
Select
ySelectMany
ya se mencionaron, responderé una pregunta adicional que no hizo:fold
se encuentra como agregado .Ahora todos los que lean esto debe ser totalmente equipada para ir ser ese hombre que escribe Idioma X usando expresiones idiomáticas Lenguaje Y ... así que por el bien de sus compañeros programadores de C #, no reciben demasiado llevar.
fuente
Y para responder una pregunta que no hizo, el equivalente Haskell de vincular la mónada de "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
fuente
¿Qué hay de ConvertAll ? Parece el más cercano al mapa.
fuente