Implement the accumulate
operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.
Given the collection of numbers:
And the operation:
x => x * x
)Your code should be able to produce the collection of squares:
Check out the test suite to see the expected function signature.
Keep your hands off that collect/map/fmap/whatchamacallit functionality provided by your standard library! Solve this one yourself using other basic tools instead.
To be more specific, you are not allowed to use any of the built-in LINQ methods.
Since accumulate
returns an IEnumerable
, its execution is deferred until ToList()
it is called on it, which is tested with the Accumulate_is_lazy
method.
This exercise requires you to write an extension method. For more information, see this page.
Sign up to Exercism to learn and master C# with 62 concepts, 167 exercises, and real human mentoring, all for free.