实现accumulate操作。它接收一个集合,以及一个要对集合中每个元素执行的操作,返回一个新集合,新集合中的每个元素都是把该操作应用到输入集合中对应元素后的结果。
给定下面这个数字集合:
以及这个操作:
x => x * x)你的代码应该能够生成由平方值组成的集合:
查看测试套件,了解预期的函数签名。
别去碰标准库提供的那些 collect/map/fmap/whatchamacallit 功能!请改用其他基本工具,自己把这道题解决掉。
更具体地说,你不能使用任何内置的 LINQ 方法。
由于accumulate返回的是IEnumerable,它的执行会延迟,直到对它调用ToList()时才真正执行,这一点由Accumulate_is_lazy方法进行测试。
这道练习要求你编写一个扩展方法。更多信息请参阅这个页面。