Exercism.io is a learning platform that combining coding challenges and mentors who review and advise on your solutions. Each challenge comes with Leinigen project that includes code and unit tests, although Exercism itself doesnt run those tests.
Use the Exercism CLI tool to download the Leinigen project for each challenge and use your preferred development tools to create the solutions. When feedback is required or you wish to share a solution, submit the code using the Exercism CLI tool. If tests are changed as well as source code, both files should be submitted.
Clojure Track
All the challenges are groups into specific language tracks, including the Clojure track
Join the language track and select either mentored mode or practice mode.
In mentored mode your solutions are added to the mentors dashboard for review from any of the available mentors. In practice mode you can complete as many solutions as you wish without waiting for a mentor.
Getting Started: Exercism CLI tool
Select an exercise and follow the Get started guide to download and install the exercism tool. This tool will download the project code and submit solutions back to the Exercism web site.
Use the Exercism tool to download a Leinignen project for the exercise
exercism download --exercise=exercise-name --track=clojure
Open the project in your preferred Clojure editor and write a solution to solve the tests in the exercise. Run the tests using Leiningen in the command line, using lein test
or the test runner in your editor.
Once the tests pass and you are happy with the solution, submit it to the Exercism website
exercism submit /path/to/src-file
Using Clojure CLI tools
With Clojure CLI tools installed, then simply add a deps.edn
file to the root directory of the Leiningen project downloaded by the Exercism CLI tool.
The deps.edn
should contain the :paths
for the src
directory (and test
if your test runner requires that path, eg. cider test runner).
{:paths ["src"]}
To run tests, use an alias such as :test/runner
from practicalli/clojure-deps-edn, an alias from your own ~/.clojure/deps.edn
or add an alias directly to the project deps.edn
file just created.
Support
The mentors on the Exercism website will provide a review of your submissions and you can switch between mentorship and practice modes as you prefer.
practicalli/exercism-clojure-guides contains the design journal and solution to several Clojure exercises.
Ask for advice in the #exercism or #beginners channels of the Clojurians Slack community.