aboutsummaryrefslogtreecommitdiff
path: root/src/content/chapter0_basics/lesson15_lists
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/chapter0_basics/lesson15_lists')
-rw-r--r--src/content/chapter0_basics/lesson15_lists/code.gleam16
-rw-r--r--src/content/chapter0_basics/lesson15_lists/text.html19
2 files changed, 35 insertions, 0 deletions
diff --git a/src/content/chapter0_basics/lesson15_lists/code.gleam b/src/content/chapter0_basics/lesson15_lists/code.gleam
new file mode 100644
index 0000000..646ad6e
--- /dev/null
+++ b/src/content/chapter0_basics/lesson15_lists/code.gleam
@@ -0,0 +1,16 @@
+import gleam/io
+
+pub fn main() {
+ let ints = [1, 2, 3]
+
+ io.debug(ints)
+
+ // Immutably prepend
+ io.debug([-1, 0, ..ints])
+
+ // Uncomment this to see the error
+ // io.debug(["zero", ..ints])
+
+ // The original lists are unchanged
+ io.debug(ints)
+}
diff --git a/src/content/chapter0_basics/lesson15_lists/text.html b/src/content/chapter0_basics/lesson15_lists/text.html
new file mode 100644
index 0000000..c29758a
--- /dev/null
+++ b/src/content/chapter0_basics/lesson15_lists/text.html
@@ -0,0 +1,19 @@
+<p>
+ Lists are ordered collections of values.
+</p>
+<p>
+ <code>List</code> is a generic type, having a type parameter
+ for the type of values it contains. A list of ints has the type
+ <code>List(Int)</code>, and a list of strings has the type
+ <code>List(String)</code>.
+</p>
+<p>
+ Lists are immutable single-linked lists, meaning they are very efficient to
+ add and remove elements from the front of the list.
+</p>
+<p>
+ Counting the length of a list or getting elements from other positions in the
+ list is expensive and rarely done. It is rare to write algorithms that index
+ into sequences in Gleam, but when they are written a list is not the right
+ choice of data structure.
+</p>