Haskell中的map函数有两个输入参数.第一个参数是函数,第二个参数是列表.map函数将作为输入参数传递的函数应用于列表中的所有元素,并返回一个新列表.
C#是否等同于此功能?
Ann*_*ang 20
另一个备选方案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);
}
Run Code Online (Sandbox Code Playgroud)
谢谢Wes Dyer这个甜蜜的扩展方法!:)查看帖子了解更多详情.
C. *_*ann 15
由于Select
与SelectMany
已经提到的,我会回答一个额外的问题,你没有问:fold
发现为骨料.
现在每个读这篇文章的人都应该有足够的能力成为那个使用Language Y成语写出语言X的家伙......所以为了你的C#程序员,不要太过于沮丧.
Eri*_*ert 11
为了回答你没有问过的问题,Haskell相当于绑定"序列"monad在C#中称为SelectMany.有关详细信息,请参阅Wes Dyer关于此的精彩文章:
http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx