aboutsummaryrefslogtreecommitdiff
path: root/src/content/chapter0_basics
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/chapter0_basics')
-rw-r--r--src/content/chapter0_basics/lesson12_type_aliases/code.gleam12
-rw-r--r--src/content/chapter0_basics/lesson12_type_aliases/text.html8
-rw-r--r--src/content/chapter0_basics/lesson13_blocks/code.gleam (renamed from src/content/chapter0_basics/lesson12_blocks/code.gleam)0
-rw-r--r--src/content/chapter0_basics/lesson13_blocks/text.html (renamed from src/content/chapter0_basics/lesson12_blocks/text.html)0
-rw-r--r--src/content/chapter0_basics/lesson14_lists/code.gleam (renamed from src/content/chapter0_basics/lesson13_lists/code.gleam)0
-rw-r--r--src/content/chapter0_basics/lesson14_lists/text.html (renamed from src/content/chapter0_basics/lesson13_lists/text.html)0
-rw-r--r--src/content/chapter0_basics/lesson15_constants/code.gleam13
-rw-r--r--src/content/chapter0_basics/lesson15_constants/text.html18
8 files changed, 51 insertions, 0 deletions
diff --git a/src/content/chapter0_basics/lesson12_type_aliases/code.gleam b/src/content/chapter0_basics/lesson12_type_aliases/code.gleam
new file mode 100644
index 0000000..6125ffe
--- /dev/null
+++ b/src/content/chapter0_basics/lesson12_type_aliases/code.gleam
@@ -0,0 +1,12 @@
+import gleam/io
+
+pub type UserId =
+ Int
+
+pub fn main() {
+ let one: UserId = 1
+ let two: Int = 2
+
+ // UserId and Int are the same type
+ io.debug(one == two)
+}
diff --git a/src/content/chapter0_basics/lesson12_type_aliases/text.html b/src/content/chapter0_basics/lesson12_type_aliases/text.html
new file mode 100644
index 0000000..9935582
--- /dev/null
+++ b/src/content/chapter0_basics/lesson12_type_aliases/text.html
@@ -0,0 +1,8 @@
+<p>
+ A type alias can be used to refer to a type by a different name. Giving a type
+ an alias doesn't make a new type, it is still the same type.
+</p>
+<p>
+ When the <code>pub</code> keyword is used the type alias is public and can be
+ referred to by other module.
+</p>
diff --git a/src/content/chapter0_basics/lesson12_blocks/code.gleam b/src/content/chapter0_basics/lesson13_blocks/code.gleam
index 31e4729..31e4729 100644
--- a/src/content/chapter0_basics/lesson12_blocks/code.gleam
+++ b/src/content/chapter0_basics/lesson13_blocks/code.gleam
diff --git a/src/content/chapter0_basics/lesson12_blocks/text.html b/src/content/chapter0_basics/lesson13_blocks/text.html
index bc82e39..bc82e39 100644
--- a/src/content/chapter0_basics/lesson12_blocks/text.html
+++ b/src/content/chapter0_basics/lesson13_blocks/text.html
diff --git a/src/content/chapter0_basics/lesson13_lists/code.gleam b/src/content/chapter0_basics/lesson14_lists/code.gleam
index 646ad6e..646ad6e 100644
--- a/src/content/chapter0_basics/lesson13_lists/code.gleam
+++ b/src/content/chapter0_basics/lesson14_lists/code.gleam
diff --git a/src/content/chapter0_basics/lesson13_lists/text.html b/src/content/chapter0_basics/lesson14_lists/text.html
index dd07cd7..dd07cd7 100644
--- a/src/content/chapter0_basics/lesson13_lists/text.html
+++ b/src/content/chapter0_basics/lesson14_lists/text.html
diff --git a/src/content/chapter0_basics/lesson15_constants/code.gleam b/src/content/chapter0_basics/lesson15_constants/code.gleam
new file mode 100644
index 0000000..aed6fb0
--- /dev/null
+++ b/src/content/chapter0_basics/lesson15_constants/code.gleam
@@ -0,0 +1,13 @@
+import gleam/io
+
+const ints: List(Int) = [1, 2, 3]
+
+const floats = [1.0, 2.0, 3.0]
+
+pub fn main() {
+ io.debug(ints)
+ io.debug(ints == [1, 2, 3])
+
+ io.debug(floats)
+ io.debug(floats == [1.0, 2.0, 3.0])
+}
diff --git a/src/content/chapter0_basics/lesson15_constants/text.html b/src/content/chapter0_basics/lesson15_constants/text.html
new file mode 100644
index 0000000..f610dcd
--- /dev/null
+++ b/src/content/chapter0_basics/lesson15_constants/text.html
@@ -0,0 +1,18 @@
+<p>
+ As well as let assignments Gleam also has constants, which are defined at the
+ top level of a module.
+</p>
+<p>
+ Constants must be literal values, functions cannot be used in their
+ definitions.
+</p>
+<p>
+ Constants may be useful for values that are used throughout your program,
+ permitting them to be named and to ensure there are no differences in the
+ definition between each use.
+</p>
+<p>
+ Using a constant may be more efficient than creating the same value in
+ multiple functions, though the exact performance characteristics will depend
+ on the runtime and whether compiling to Erlang or JavaScript.
+</p>