Skip to content

Latest commit

 

History

History
73 lines (51 loc) · 3.86 KB

README.md

File metadata and controls

73 lines (51 loc) · 3.86 KB

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

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.

Julia icon

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.