Exercism exercises in Julia.
Please see the contributing guide.
A pool of exercises can be found in the problem-specifications repo.
Exercises for the Julia track go in the exercises
directory and should follow the following filename conventions:
exercises/<slug>/<slug>.jl
Skeleton for the function that is called by the test suite. Provide (abstract) parameter and return types to ensure compatibility with the test suite.
exercises/<slug>/runtests.jl
Test suite for the exercise. Group related tests using testsets.
exercises/<slug>/example.jl
Example solution for the exercise. It should follow the Julia Style Guide and the code formatting guidelines specified below.
Replace <slug>
with the exercise slug of the exercise you're working on.
See Issue #2 for discussion on the structure and style guidelines.
If you are porting an existing exercise, you need to generate the exercise README.md
using the configlet. The process is described here: https://github.com/exercism/docs/blob/master/maintaining-a-track/regenerating-exercise-readmes.md
Make sure to add the exercise to the config.json
file, by adding an entry to the exercises
array:
"exercises": [
{
"uuid": "a668410d-41aa-4710-a68f-54521da6486d",
"slug": "hello-world",
"core": true,
"unlocked_by": null,
"difficulty": 1,
"topics": [
"strings"
]
},
]
If possible, add info on which topics the exercise is about and estimate a difficulty level from 1 to 10. We can adjust these later on when we know more about the exercises and how users solve them.
You can generate the uuid with the configlet. It can be installed easily by running bin/fetch-configlet
. Simply run configlet uuid
to generate an exercise uuid.
By default, you can leave "core": false
and "unlocked_by: null"
. We can discuss in the PR where the exercise should be added to the progression.
Test your example solutions by running julia runtests.jl
in the project directory. Specify exercise slugs as arguments to run only certain exercises: julia runtests.jl <slug>
.
Your example solutions should adhere to the following guidelines:
- 4 spaces per indentation level, no tabs
- use whitespace to make the code more readable
- no whitespace at the end of a line (trailing whitespace)
- comments are good, especially when they explain the algorithm
- try to adhere to a 92 character line length limit
- use upper camel case convention for type names
- use lower case with underscores for method names
- it is generally preferred to use ASCII operators and identifiers over Unicode equivalents whenever possible
These are based on the General Formatting Guidelines for contributions to the Julia codebase.
The Julia logo has been designed by Stefan Karpinski. He has granted us permission to create and use a derived logo for this exercism track.