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/lesson025_list_patterns | |
parent | 819cc743eba34cdd25e25f3c6ba5891a8cb6077d (diff) | |
download | tour-b0840f22e53f6a820b11ba538fb3a9b926fb9b29.tar.gz tour-b0840f22e53f6a820b11ba538fb3a9b926fb9b29.zip |
More lessons
Diffstat (limited to 'lessons/src/lesson025_list_patterns')
-rw-r--r-- | lessons/src/lesson025_list_patterns/code.gleam | 17 | ||||
-rw-r--r-- | lessons/src/lesson025_list_patterns/text.html | 15 |
2 files changed, 32 insertions, 0 deletions
diff --git a/lessons/src/lesson025_list_patterns/code.gleam b/lessons/src/lesson025_list_patterns/code.gleam new file mode 100644 index 0000000..a5619aa --- /dev/null +++ b/lessons/src/lesson025_list_patterns/code.gleam @@ -0,0 +1,17 @@ +import gleam/io +import gleam/int +import gleam/list + +pub fn main() { + let x = list.repeat(int.random(0, 5), times: int.random(0, 3)) + io.debug(x) + + let result = case x { + [] -> "Empty list" + [1] -> "List of just 1" + [4, ..] -> "List starting with 4" + [_, _] -> "List of 2 elements" + _ -> "Some other list" + } + io.debug(result) +} diff --git a/lessons/src/lesson025_list_patterns/text.html b/lessons/src/lesson025_list_patterns/text.html new file mode 100644 index 0000000..de55eef --- /dev/null +++ b/lessons/src/lesson025_list_patterns/text.html @@ -0,0 +1,15 @@ +<p> + Lists and the values they contain can be pattern matched on in case + expressions. +</p> +<p> + List patterns match on specific lengths of lists. The pattern <code>[]</code> + matches an empty list, and the pattern <code>[_]</code> matches a list with + one element. They will not match on lists with other lengths. +</p> +<p> + The spread pattern <code>..</code> can be used to match the rest of the list. + The pattern <code>[1, ..]</code> matches any list that starts with + <code>1</code>. The pattern <code>[_, _, ..]</code> matches any list that has + at least two elements. +</p> |