Giter Club home page Giter Club logo

purescript's Introduction

Exercism PureScript Track

Exercism exercises in PureScript.

How to contribute

Thank you so much for contributing! ๐ŸŽ‰

Asking for help

When in doubt just open a GitHub issue and ask! In any case, don't be afraid or shy! We promise to be friendly and as helpful as possible.

How to contribute

As a first step we recommend you read the contributing guide.

Standard exercise folder strucutre

All exercises live in exercises folder. Here's the standard folder structure:

<exercise name>
โ”œโ”€ examples
โ”‚  โ””โ”€ src
โ”‚     โ””โ”€ <ExerciseName>.purs
โ”œโ”€ src
โ”‚  โ””โ”€ <ExerciseName>.purs
โ”œโ”€ test
โ”‚  โ””โ”€ Main.purs
โ”œโ”€ packages.dhall
โ””โ”€ spago.dhall

Creating a new exercise requires modification to:

  • examples/src/<ExerciseName>.purs - put your solution here
  • src/<ExerciseName>.purs - this should generally only have the module declaration and the exports and signatures of the functions that the solution should contain

The remaining files:

  • test/Main.purs - contains tests
  • spago.dhall and packages.dhall - these are copied from the template project template/*.dhall and should not be directly modified (see the following section)

Steps for adding a new exercise

  • Create a new git branch for the exercise
  • Create a directory for the exercise in exercises folder with the name of the exercise
  • Create directories examples, src and test in your exercise directory
  • Use bin/fetch-configlet && bin/configlet generate . --only exercise-name to generate the README.md
  • Use bin/configlet uuid to generate a new UUID for the exercise
  • Add exercise details to config.json
  • Add tests to test/Main.purs
  • Add your solution to examples/src/<ExerciseName>.purs
  • Run bin/test.sh to make sure all tests pass
  • Commit, push and make a pull request
  • Check that GitHub CI passes

Reporting or fixing bugs

Typical examples for a bug: A typo, a missing test case, an unclear or ambiguous problem description.

Reviewing issues and pull requests

If you have an opinion or feedback on work currently being done on this track please do write a comment for an issue or a pull request. Feedback is extremely useful to us.

Please be detailed and include any links or arguments to support your opinion.

Porting exercises

Here is the list of missing exercises. See here for more information about porting an exercise. Of course you can also add a totally new exercise, but it might be a good idea to first discuss it in one of our forums.

Repository structure and conventions

Here is a general description of all the files and directories that are not explicitly described below.

Writing a pull request

To fix a bug you should create a pull request from a fork here. See also here for more information.

Purescript icon

The PureScript logo was created by Gareth Hughes, and is licensed under the Creative Commons Attribution 4.0 license. We have adapted it, changing the colour scheme, for use on Exercism.

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.