learning F#, it seems pretty cool, favourite functional language so far.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lachlan Jacob 56afbe9dc5 Exercism problems 5 anni fa
..
Accumulate.fs Exercism problems 5 anni fa
Accumulate.fsproj Exercism problems 5 anni fa
AccumulateTests.fs Exercism problems 5 anni fa
README.md Exercism problems 5 anni fa

README.md

Accumulate

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:

  • 1, 2, 3, 4, 5

And the operation:

  • square a number (x => x * x)

Your code should be able to produce the collection of squares:

  • 1, 4, 9, 16, 25

Check out the test suite to see the expected function signature.

Restrictions

Keep your hands off that collect/map/fmap/whatchamacallit functionality provided by your standard library! Solve this one yourself using other basic tools instead.

Hints

For this exercise the following F# feature comes in handy:

  • Tail recursion Prevent stack overflows with large input by using tail recursion. While there are no test cases checking explicitly for this, using tail recursion leads to a more performant solution. Another good resource on tail recursion is this blog post.
  • Type inference The F# compiler can automatically infer types, which means you often don’t have to add any types at all. For more information on how this works and its advantages, see this page.

Running the tests

To run the tests, run the command dotnet test from within the exercise directory.

Autoformatting the code

F# source code can be formatted with the Fantomas tool.

After installing it with dotnet tool restore, run dotnet fantomas . to format code within the current directory.

Further information

For more detailed information about the F# track, including how to get help if you’re having trouble, please visit the exercism.io F# language page.

Source

Conversation with James Edward Gray II https://twitter.com/jeg2