diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-12-12 15:29:01 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-12-12 15:29:05 +0000 |
commit | b0840f22e53f6a820b11ba538fb3a9b926fb9b29 (patch) | |
tree | 055996a034409f7e401cdd853ba5895eb93add84 /lessons/src/lesson023_variable_patterns | |
parent | 819cc743eba34cdd25e25f3c6ba5891a8cb6077d (diff) | |
download | tour-b0840f22e53f6a820b11ba538fb3a9b926fb9b29.tar.gz tour-b0840f22e53f6a820b11ba538fb3a9b926fb9b29.zip |
More lessons
Diffstat (limited to 'lessons/src/lesson023_variable_patterns')
-rw-r--r-- | lessons/src/lesson023_variable_patterns/code.gleam | 16 | ||||
-rw-r--r-- | lessons/src/lesson023_variable_patterns/text.html | 17 |
2 files changed, 33 insertions, 0 deletions
diff --git a/lessons/src/lesson023_variable_patterns/code.gleam b/lessons/src/lesson023_variable_patterns/code.gleam new file mode 100644 index 0000000..78eb050 --- /dev/null +++ b/lessons/src/lesson023_variable_patterns/code.gleam @@ -0,0 +1,16 @@ +import gleam/io +import gleam/int + +pub fn main() { + let x = int.random(0, 5) + io.debug(x) + + let result = case x { + // Match specific values + 0 -> "Zero" + 1 -> "One" + // Match any other value + _ -> "Other" + } + io.debug(result) +} diff --git a/lessons/src/lesson023_variable_patterns/text.html b/lessons/src/lesson023_variable_patterns/text.html new file mode 100644 index 0000000..8154979 --- /dev/null +++ b/lessons/src/lesson023_variable_patterns/text.html @@ -0,0 +1,17 @@ +<p> + The case expression is the most common kind of flow control in Gleam code. It + is similar to `switch` in some other languages, but more powerful than most. +</p> +<p> + It allows the programmer to say "if the data has this shape then run this + code", a process called called <em>pattern matching</em>. +</p> +<p> + Gleam performs <em>exhaustiveness checking</em> to ensure that the patterns in + a case expression cover all possible values. With this you can have confidence + that your logic is up-to-date for the design of the data you are working with. +</p> +<p> + Try commenting out patterns or adding new redundant ones, and see what + problems the compiler reports. +</p> |