Exercises and a course in Red.
Tooling:
Please, see the official contributing guide’s Building Tracks section. This track is already published, but there are many things to improve:
There is also some interesting general info about Exercism, but remember it’s a legacy documentation and can be outdated and official docs always take precedence:
Generally, practice exercises are best taken from Exercism’s problem-specifications repository, so the experience is similar for students in every language track. But in case you need some fresh ideas, here are some links with script examples you can check for inspiration, especially in topics specific to Red:
Scripts in Rebol (it’s very similar to Red)
First, read official documentation for background.
Now, here’s how we do this in the Red track:
$ red _tools/generate-practice-exercise.red <exercise-slug>
exercises/practice/<exercise-slug>/<exercise-slug>-test.red
make a change like this, to test your example solution:
; test-init/limit %exercise-slug.red 1
test-init/limit %.meta/example.red 1
exercises/practice/<exercise-slug>/.meta/example.red
,test-init
function from 1
to how many tests you want to run in <exercise-slug>-test.red
.
$ cd exercises/practice/<exercise-slug>
$ red <exercise-slug>-test.red
test-init
line: uncomment solution file, comment example file and change limit
to 1
(second argument).config,json
. If you want, add practices
and prerequisites
concepts. Copy the exercise’s config to the proper position, so that all exercises are sorted from easiest to toughest.Useful for concepts and concept exercises
Concepts are being developed in a separate branch. More info is in GitHub task: https://github.com/exercism/red/issues/37 . There is no common source or list for concepts. Existing ones were created simply from looking at the practice exercises’ example solutions and deducing what’s needed to create and understand them.
There is a tool that counts and prints exercises unlocked by each concept, and exercises that practice the concept:
_tools/concepts-practice.red
Besides creating issues and commenting in this repository, you are welcome to post on Red’s “training” Gitter channel.