aboutsummaryrefslogtreecommitdiff
path: root/lessons/src/lesson005_floats
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-12-06 17:57:04 +0000
committerLouis Pilfold <louis@lpil.uk>2023-12-06 17:57:04 +0000
commit58efb89355676356ee1006bbd2c8b0ee44108358 (patch)
treef07f88c52150e738ddf597d3d4daab9444c01a9f /lessons/src/lesson005_floats
parente66db486ffa57a1ce68a85ab6cb7bfbb05e260b8 (diff)
downloadtour-58efb89355676356ee1006bbd2c8b0ee44108358.tar.gz
tour-58efb89355676356ee1006bbd2c8b0ee44108358.zip
More try lessons
Diffstat (limited to 'lessons/src/lesson005_floats')
-rw-r--r--lessons/src/lesson005_floats/code.gleam20
-rw-r--r--lessons/src/lesson005_floats/text.html19
2 files changed, 39 insertions, 0 deletions
diff --git a/lessons/src/lesson005_floats/code.gleam b/lessons/src/lesson005_floats/code.gleam
new file mode 100644
index 0000000..f42c608
--- /dev/null
+++ b/lessons/src/lesson005_floats/code.gleam
@@ -0,0 +1,20 @@
+import gleam/io
+import gleam/float
+
+pub fn main() {
+ // Float arithmetic
+ io.debug(1.0 +. 1.5)
+ io.debug(5.0 -. 1.5)
+ io.debug(5.0 /. 2.5)
+ io.debug(3.0 *. 3.5)
+
+ // Float comparisons
+ io.debug(2.2 >. 1.3)
+ io.debug(2.2 <. 1.3)
+ io.debug(2.2 >=. 1.3)
+ io.debug(2.2 <=. 1.3)
+
+ // Standard library float functions
+ io.debug(float.max(2.0, 9.5))
+ io.debug(float.ceiling(5.4))
+}
diff --git a/lessons/src/lesson005_floats/text.html b/lessons/src/lesson005_floats/text.html
new file mode 100644
index 0000000..497bb13
--- /dev/null
+++ b/lessons/src/lesson005_floats/text.html
@@ -0,0 +1,19 @@
+<p>
+ Gleam's <code>Float</code> type represents numbers that are not integers.
+</p>
+<p>
+ Unlike many languages Gleam does not have a `NaN` or `Infinity` float value.
+</p>
+<p>
+ Gleam's numerical operators are not overloaded, so there are dedictated
+ operators for working with floats.
+</p>
+<p>
+ Floats are represented as 64 bit floating point numbers on both Erlang and
+ JavaScript runtimes.
+</p>
+<p>
+ The <a href="https://hexdocs.pm/gleam_stdlib/gleam/float.html"><code>gleam/float</code></a>
+ standard library module contains functions for working with floats.
+</p>
+