Welcome to the workspace for Exercism v3's Elm track!
This area will contain everything needed to launch the Elm track, including:
- The new exercises and
config.json
file. - Reference documentation that help explain Elm concepts for which no appropriate online document could be found.
- Elm-specific documentation for contributors.
Before we publicize requesting contribution for this language, the following steps should be done.
- Have a kick-off discussion between track maintainers
- Fill out the maintainers.md file (e.g. C#)
- Ensure there is a link to your track's GitHub issues on the main README.md
- Write a Concept Exercise implementation guide
- List out key Concepts for your language
- Add GitHub issues for 20 Concept Exercises
Before launch, we need all of the following parts to be completed:
- Added
version
key - Added online editor settings
- Added
indent_style
- Added
indent_size
- Added
- Convert the
exercises
array to an object - Remove the
foregone
property
See the migrating your config.json files document for more information.
- Added 20+ Concept Exercises
- Build Representer
- Deploy Representer
- Build Test Runner
- Deploy Test Runner
These extra steps will make your track better, but are optional.
- Build Analyzer
- Deploy Analyzer
This is a mermaid / markdown diagram, you may need to install a Browser Plugin or VsCode extension or similar to view it. You could also copy and paste the markdown in to the Mermaid Online Editor if you would prefer not to install plugins.
The top to bottom order of the items (at least in the markdown text, and mostly in the diagram) is the suggested learning order.
graph LR
Basics[Minimal compilable file] --> Independents[Import, Exposing, Functions, Float, Int, Type Annotations] --> Mathematical-Operators
Independents --> Mathematical-Operators
Independents --> Mathematical-Functions
Independents --> Let-Expressions
Independents --> Equality
Equality --> Ordering
Ordering --> Comparisons
Independents --> String
String --> Regex
Independents --> Char
Independents --> List
List --> List-Extra
Independents --> Dict
Independents --> Set
Independents --> Array
Independents --> Type-alias
Independents --> Sum-types
Independents --> Booleans[Bool type / operators, If]
Sum-types --> Pattern-matching
Pattern-matching --> Maybe
Booleans --> Maybe
Maybe --> Result
Pattern-matching --> Parser
Independents --> Function-composition
Independents --> Function-chaining
Independents --> Partial-application
Partial-application --> Point-freestyle
Function-composition --> Point-freestyle
Function-chaining --> Point-freestyle
Point-freestyle --> Operator-functions
Independents --> Bitwise-operators
Independents --> Conversions
Independents --> Posix-time