Exercism is a learning platform for multiple programming languates (currently 67) which combines carefully crafted coding challenges and mentors who review and advise on solutions.
Solve challenges via the built-in Exercism editor.
Use the Exercism CLI to submit a solution for metor feedback.
Exercism embdedded Clojure editor
The Exercisim Clojure editor is powered by babashka/sci
Join the language track to be presented with available challenges and progress through that specific track.
The Exercism CLI can download a Clojure project containing the code for a specific challeng and submit the code back to exercism to confirm if the tests have passed and complete the challenge (or get feedback from a mentor).
Each challenge shows the download and submit commands
Each Exercise page shows the command to download the code for that specific exercise, which is of the form
Open the project source code downloaded from Exercism in a preferred Clojure editor and write a solution to solve the exercise.
clojure -X:test command in the root of the downloaded project will run the tests supplied by the exercise
Practicalli Test Runner aliases
clojure -X:test/run runs the Kaocha test runner from the Practicalli Clojure CLI Config
clojure -X:test/watch will automatically re-run tests when file changes are detected.
Clojure test runner covers test runner options in more detail.
Once the tests pass and you are happy with the solution, submit it to the Exercism website
Use a REPL workflow to get instant feedback on code written to make the unit test assersions pass.
Use a rich
comment to experiment with clojure expressions that help move towards a solution, typically solving one unit test at a time. This separates experimental code from finished designs.
Disable Linter rules
Disable Linter rules within the
comment expression that are not useful for REPL experiments.
It is common to have several implmentations of a function with the same name, so
:redefined-var is disabled.
Functions defined in the REPL experments are not ment to be used publicly (until they are copied/moved out of the comment form), so
:clojure-lsp/unused-public-var lint rule is disabled
Mentors on the Exercism website will provide a review of your submissions and you can switch between mentor and practice modes as you prefer.
practicalli/exercism-clojure-guides contains a design journal of solutions to several Clojure exercises.