Skip to content
Exercism exercises in Julia.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
config
docs
exercises
generators
img
.gitignore
.travis.yml
LICENSE
README.md
REQUIRE
config.json
runtests.jl

README.md

Exercism Julia Track

Join the chat at https://gitter.im/exercism/xjulia Build Status

Exercism exercises in Julia.

Contributing Guide

Please see the contributing guide.

Working on the Exercises

Implementing an exercise

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. If necessary, provide (abstract) parameter and return types.

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.

Adding the README

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

Adding it to config

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.

Testing the example solutions

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>.

Code Formatting Guidelines

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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.