mirror of
https://github.com/correl/elm.git
synced 2024-12-23 11:15:00 +00:00
66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
|
# 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.
|
||
|
|
||
|
Lisp specific: it's perfectly fine to use `MAPCAR` or the equivalent,
|
||
|
as this is idiomatic Lisp, not a library function.
|
||
|
|
||
|
## Elm Installation
|
||
|
|
||
|
Refer to the [Exercism help page](http://exercism.io/languages/elm) for Elm
|
||
|
installation and learning resources.
|
||
|
|
||
|
## Writing the Code
|
||
|
|
||
|
The first time you start an exercise, you'll need to ensure you have the
|
||
|
appropriate dependencies installed.
|
||
|
|
||
|
```bash
|
||
|
$ npm install
|
||
|
```
|
||
|
|
||
|
Execute the tests with:
|
||
|
|
||
|
```bash
|
||
|
$ npm test
|
||
|
```
|
||
|
|
||
|
Automatically run tests again when you save changes:
|
||
|
|
||
|
```bash
|
||
|
$ npm run watch
|
||
|
```
|
||
|
|
||
|
As you work your way through the test suite, be sure to remove the `skip <|`
|
||
|
calls from each test until you get them all passing!
|
||
|
|
||
|
## Source
|
||
|
|
||
|
Conversation with James Edward Gray II [https://twitter.com/jeg2](https://twitter.com/jeg2)
|
||
|
|
||
|
## Submitting Incomplete Solutions
|
||
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|