From ab2b9a982ede817362072623ff9ae2aa42e083da Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Thu, 18 Jan 2024 20:34:43 +0000 Subject: Move recursion lessons together --- .../lesson09_alternative_patterns/code.gleam | 14 ++++++++++++++ .../lesson09_alternative_patterns/text.html | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/content/chapter2_flow_control/lesson09_alternative_patterns/code.gleam create mode 100644 src/content/chapter2_flow_control/lesson09_alternative_patterns/text.html (limited to 'src/content/chapter2_flow_control/lesson09_alternative_patterns') diff --git a/src/content/chapter2_flow_control/lesson09_alternative_patterns/code.gleam b/src/content/chapter2_flow_control/lesson09_alternative_patterns/code.gleam new file mode 100644 index 0000000..06a6562 --- /dev/null +++ b/src/content/chapter2_flow_control/lesson09_alternative_patterns/code.gleam @@ -0,0 +1,14 @@ +import gleam/io +import gleam/int + +pub fn main() { + let number = int.random(10) + io.debug(number) + + let result = case number { + 2 | 4 | 6 | 8 -> "This is an even number" + 1 | 3 | 5 | 7 -> "This is an odd number" + _ -> "I'm not sure" + } + io.debug(result) +} diff --git a/src/content/chapter2_flow_control/lesson09_alternative_patterns/text.html b/src/content/chapter2_flow_control/lesson09_alternative_patterns/text.html new file mode 100644 index 0000000..10ad731 --- /dev/null +++ b/src/content/chapter2_flow_control/lesson09_alternative_patterns/text.html @@ -0,0 +1,17 @@ +

+ Alternative patterns can be given for a case clause using the + | operator. If any of the patterns match then the clause matches. +

+

+ When matching on multiple subjects there must be the same number of patterns + as there are subjects. Try removing one of the _, sub-patterns to + see the compile time error that is returned. +

+

+ If a pattern defines a variable then all of the alternative patterns for that + clause must also define a variable with the same name and same type. +

+

+ Currently it is not possible to have nested alternative patterns, so the + pattern [1 | 2 | 3] is not valid. +

-- cgit v1.2.3