Giter VIP home page Giter VIP logo

julia's Introduction

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.

julia's People

Contributors

alemelis avatar andrej-makarov-skrt avatar catb0t avatar cnot avatar daveyarwood avatar fsouza avatar gitter-badger avatar harrisongrodin avatar jackhughesweb avatar nywilken avatar saschamann avatar teo-shaowei avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.