Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

list-ops: Update instructions append #710

Merged
merged 8 commits into from
Jan 5, 2025
46 changes: 27 additions & 19 deletions exercises/practice/list-ops/.docs/instructions.append.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@
# Instructions append

## Appendix

The instructions are synced with a shared repository to ensure consistency across all language tracks.
For this exercise in the Clojure track, assume both the input and output are vectors.
As a stretch goal, consider how you could implement the solution without using lists anywhere in your code.
Also, think about the efficiency of your program.

It is important not to reuse existing Clojure built-in functions with similar functionality, as doing so would diminish the intended learning value of the exercise.
Key functions from the **clojure.core** namespace to avoid include `into`, `concat`, `cat`, `lazy-cat`, `mapcat`, `flatten`, `filter`, `filterv`, `remove`, `count`, `map`, `mapv`, `reduce`, `transduce`, `reverse`, and `rseq`.

### Optional goals

Try to pass the tests by devising a solution that assumes both the input and output are lists instead of vectors.
The test suite does not need to be modified.
This time, consider how you could implement the solution without using vectors anywhere in your code.

If you decide to publish this solution, be sure to include a comment indicating that it addresses the optional goal of using lists. Don't forget to update the docstrings!
# Instructions append

## Appendix

~~~~exercism/note
The instructions above are synchronized with a shared repository to ensure consistency across all language tracks.
This appendix provides additional clarification or modifies the instructions as needed to better align with the goals of the Clojure track.
~~~~

For this exercise in the Clojure track, **assume both the input and output are vectors**, as indicated by the tests.
As a stretch goal, consider how to implement an approach that does not use lists for intermediate steps.

It is important not to reuse existing Clojure built-in functions with similar functionality, as doing so would diminish the intended learning value of the exercise.
Key functions from the `clojure.core` namespace to avoid include `into`, `concat`, `cat`, `lazy-cat`, `mapcat`, `flatten`, `filter`, `filterv`, `remove`, `count`, `map`, `mapv`, `reduce`, `transduce`, `reverse`, and `rseq`.

### Optional goals

The optional goal is for those who want an extra challenge and is designed with the expectation that you've already completed the main goal.

Try to pass the tests by devising an approach that assumes:

* Both the input and output are lists instead of vectors.
Note that, as usual, the tests do not need to be modified.
* Vectors cannot be used for intermediate steps.

If you decide to publish this, be sure to include a comment indicating that it addresses the optional goal of using lists.
Don't forget to update the docstrings!
Loading