learning F#, it seems pretty cool, favourite functional language so far.
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
Lachlan Jacob 56afbe9dc5 Exercism problems 5 年前
..
Accumulate.fs Exercism problems 5 年前
Accumulate.fsproj Exercism problems 5 年前
AccumulateTests.fs Exercism problems 5 年前
README.md Exercism problems 5 年前

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