Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Concept: Random #537

Closed
jiegillet opened this issue Nov 27, 2022 · 0 comments · Fixed by #613
Closed

Concept: Random #537

jiegillet opened this issue Nov 27, 2022 · 0 comments · Fixed by #613
Assignees
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:priority/high Has a higher priority than other issues x:size/large Large amount of work x:type/content Work on content (e.g. exercises, concepts)

Comments

@jiegillet
Copy link
Contributor

Design

Goal

The Goal is to learn to use the Random module.

Learning objectives

Students should be able to

  • understand the constraints of a pure language when it comes to generating randomness (mention step, Seed)
  • understand what a generator is
  • create primitive generators (int, float, constant)
  • pick a distribution (uniform, weighted)
  • generate data structures (list, pair)
  • modify and intricate generators (map, andThen)
  • define recursive generators (lazy)

Out of scope

  • generate, Platform and Cmd msg (a quick mention is fine)
  • details on the algorithm, minInt and maxInt

Concepts

The concept this exercise unlocks is:

  • random

Prerequisites

  • basics-1
  • basics-2
  • lists
  • custom types

Analyzer

TBD depending on the exercise


Comments

  • The exercise should go beyond the usual "pick a thing from a list" and highlight the power of generators, for example building a recursive data structure (maze? family tree? Elm program?...)
  • Test the exercise using seed and steps, in such a manner that students can also use it to debug their code.
  • mention elm-community/random-extra has a lot of useful resources
@jiegillet jiegillet added x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:type/content Work on content (e.g. exercises, concepts) x:size/large Large amount of work x:priority/high Has a higher priority than other issues labels Nov 27, 2022
@jiegillet jiegillet self-assigned this Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:priority/high Has a higher priority than other issues x:size/large Large amount of work x:type/content Work on content (e.g. exercises, concepts)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant