aboutsummaryrefslogtreecommitdiff
path: root/lessons/src/lesson021_list_functions
diff options
context:
space:
mode:
Diffstat (limited to 'lessons/src/lesson021_list_functions')
-rw-r--r--lessons/src/lesson021_list_functions/code.gleam15
-rw-r--r--lessons/src/lesson021_list_functions/text.html25
2 files changed, 40 insertions, 0 deletions
diff --git a/lessons/src/lesson021_list_functions/code.gleam b/lessons/src/lesson021_list_functions/code.gleam
new file mode 100644
index 0000000..8cd4ced
--- /dev/null
+++ b/lessons/src/lesson021_list_functions/code.gleam
@@ -0,0 +1,15 @@
+import gleam/io
+import gleam/list
+
+pub fn main() {
+ let ints = [0, 1, 2, 3, 4, 5]
+
+ let doubled = list.map(ints, fn(x) { x * 2 })
+ io.debug(doubled)
+
+ let even = list.filter(ints, fn(x) { x % 2 == 0 })
+ io.debug(even)
+
+ let total = list.fold(ints, from: 0, with: fn(count, e) { count + e })
+ io.debug(total)
+}
diff --git a/lessons/src/lesson021_list_functions/text.html b/lessons/src/lesson021_list_functions/text.html
new file mode 100644
index 0000000..e143654
--- /dev/null
+++ b/lessons/src/lesson021_list_functions/text.html
@@ -0,0 +1,25 @@
+<p>
+ The <a href="https://hexdocs.pm/gleam_stdlib/gleam/list.html"><code>gleam/list</code></a>
+ standard library module contains functions for working with lists. A Gleam
+ program will likely make heavy use of this module.
+</p>
+
+<p>
+ <a href="https://hexdocs.pm/gleam_stdlib/gleam/list.html#map"><code>map</code></a>
+ makes a new list by running a function on each element in a list.
+</p>
+<p>
+ <a href="https://hexdocs.pm/gleam_stdlib/gleam/list.html#filter"><code>filter</code></a>
+ makes a new list containing only the elements for which a function returns
+ true.
+</p>
+<p>
+ <a href="https://hexdocs.pm/gleam_stdlib/gleam/list.html#fold"><code>fold</code></a>
+ combines all the elements in a list into a single value by running a function
+ left-to-right on each element, passing the result of the previous call to the
+ next call.
+</p>
+<p>
+ It's worth getting familiar with all the functions in this module when writing
+ Gleam code.
+</p>