From 2e0102248e083127e4b532c3adb6f0ee0d66328d Mon Sep 17 00:00:00 2001 From: PWadsworth Date: Tue, 20 Sep 2022 01:02:58 -0400 Subject: [PATCH 1/2] reference/concepts.md: Update concepts completed --- reference/concepts.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/reference/concepts.md b/reference/concepts.md index 637605190..a3cdcf966 100644 --- a/reference/concepts.md +++ b/reference/concepts.md @@ -27,9 +27,9 @@ The Haskell concept exercises are based on concepts. The list below contains the - [ ] Tail recursion - [ ] Type declarations & annotations - [ ] Immutability -- [ ] Pattern matching - - [ ] Wildcards - - [ ] Guard clauses +- [x] Pattern matching + - [x] Wildcards + - [x] Guard clauses - [ ] Type inference - [ ] Polymorphism by default @@ -67,18 +67,18 @@ The Haskell concept exercises are based on concepts. The list below contains the - [ ] Resource allocation - [ ] Scoping - [ ] Imports - - [ ] Modules + - [x] Modules - [ ] Namespaces - [ ] Shadowing - - [ ] Visibility (export or not) -- [ ] Whitespace significant + - [x] Visibility (export or not) +- [x] Whitespace significant - [ ] String formatting -- [ ] Values - - [ ] Definitions +- [x] Values + - [x] Definitions ### Types -- [ ] Booleans +- [x] Booleans - [ ] Characters - [ ] Collections - [ ] Arrays From 825e3826cee620b82e0b9fe65479df84cc7cb421 Mon Sep 17 00:00:00 2001 From: PWadsworth Date: Mon, 26 Sep 2022 17:39:08 -0400 Subject: [PATCH 2/2] README: Add instructions.md and config.json to practice exercise structure Closes https://github.com/exercism/haskell/issues/1085 --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d4a074445..9fddaa616 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Exercism exercises in Haskell * [Update an exercise test suite](#update-an-exercise-test-suite) - [Repository structure and conventions](#repository-structure-and-conventions) * [Directory structure](#directory-structure) - * [Exercise structure](#exercise-structure) + * [Practice exercise structure](#practice-exercise-structure) * [Exercise versioning](#exercise-versioning) - [Development Dependencies](#development-dependencies) - [Stub solution](#stub-solution) @@ -128,12 +128,15 @@ The [track anatomy documentation](https://github.com/exercism/docs/blob/master/l │ │ └── Accumulate.hs │ ├── test │ │ └── Tests.hs + │ ├── .docs + │ │ └── instructions.md │ └── .meta │ ├── examples │ │ └── success-standard │ │ ├── package.yaml │ │ └── src │ │ └── Accumulate.hs + │ ├── config.json │ └── hints.md ├── allergies │ └── ... @@ -141,8 +144,8 @@ The [track anatomy documentation](https://github.com/exercism/docs/blob/master/l ``` - `config.json`: Every exercise has to be registered here. It has a unique name and a difficulty. The sequence order is also the default order in which the exercises are fetched. -## Exercise structure -Each exercise has the following structure: +## Practice exercise structure +Each practice exercise has the following structure: - `stack.yaml` has just one line specifying the current [Stack snapshot](https://www.stackage.org/snapshots). We use the same resolver for all the exercises. @@ -150,10 +153,15 @@ resolver for all the exercises. format that has all dependencies and build instructions for an exercise. One of the properties tracked in `package.yaml` is the [version](#exercise-versioning) of the exercise. - `src/ModuleName.hs` is a [stub solution](#stub-solution). +- `.docs/instructions.md` contains the instructions and requirements to complete the exercise. + For an exercise from [problem-specifications](https://github.com/exercism/problem-specifications/), this file should exactly match the description.md from problem-specifications. + The [Exercism-wide documentation for instructions.md](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md#file-docsinstructionsmd) contains more information. - `.meta/examples/success-/package.yaml` contains library dependencies for the [example solution](#example-solution). `` is a unique name for the example - usually "standard" (as in `success-standard`), but it can be some other name in case of multiple example solutions. - `.meta/examples/success-/src/ModuleName.hs` is the source code of the sample solution. - `test/Tests.hs` is the [test suite](#test-suite). - `.meta/hints.md` is an optional file containing instructions and/or hints. It is used together with the respective `description.md` for the exercise from [problem-specifications](https://github.com/exercism/problem-specifications) to build the `README.md` file. +- `.meta/config.json` is the exercise configuration file. + The [Exercism-wide documentation for .meta/config.json](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md#file-metaconfigjson) contains more information. ## Exercise versioning