From 51a1fcbd0e42b25238877d3ad05d1690e8bc1553 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Wed, 3 Jan 2024 19:48:25 +0000 Subject: More stdlib --- .../lesson04_option_module/code.gleam | 14 ++++++++++++++ .../lesson04_option_module/text.html | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/content/chapter4_standard_library/lesson04_option_module/code.gleam create mode 100644 src/content/chapter4_standard_library/lesson04_option_module/text.html (limited to 'src/content/chapter4_standard_library/lesson04_option_module') diff --git a/src/content/chapter4_standard_library/lesson04_option_module/code.gleam b/src/content/chapter4_standard_library/lesson04_option_module/code.gleam new file mode 100644 index 0000000..eb60001 --- /dev/null +++ b/src/content/chapter4_standard_library/lesson04_option_module/code.gleam @@ -0,0 +1,14 @@ +import gleam/io +import gleam/option.{type Option, None, Some} + +pub type Person { + Person(name: String, pet: Option(String)) +} + +pub fn main() { + let person_with_pet = Person("Al", Some("Nubi")) + let person_without_pet = Person("Maria", None) + + io.debug(person_with_pet) + io.debug(person_without_pet) +} diff --git a/src/content/chapter4_standard_library/lesson04_option_module/text.html b/src/content/chapter4_standard_library/lesson04_option_module/text.html new file mode 100644 index 0000000..881ea94 --- /dev/null +++ b/src/content/chapter4_standard_library/lesson04_option_module/text.html @@ -0,0 +1,16 @@ +

+ Values in Gleam are not nullable, so the + gleam/option + standard library module defines Gleam's Oction type, which can be + used to represent a value that is either present or absent. +

+ +

+ The option type is very similar to the result type, but it does not have an + error value. Some languages have functions return an option when there is no + extra error detail to give, but Gleam always uses result. This makes all + failible functions consistent and removes any boilerplate that would be + required when mixing functions that use each type. +

-- cgit v1.2.3