aboutsummaryrefslogtreecommitdiff
path: root/src/content/chapter5_advanced_features/lesson00_use
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/chapter5_advanced_features/lesson00_use')
-rw-r--r--src/content/chapter5_advanced_features/lesson00_use/code.gleam38
-rw-r--r--src/content/chapter5_advanced_features/lesson00_use/en.html31
2 files changed, 0 insertions, 69 deletions
diff --git a/src/content/chapter5_advanced_features/lesson00_use/code.gleam b/src/content/chapter5_advanced_features/lesson00_use/code.gleam
deleted file mode 100644
index e7b435b..0000000
--- a/src/content/chapter5_advanced_features/lesson00_use/code.gleam
+++ /dev/null
@@ -1,38 +0,0 @@
-import gleam/io
-import gleam/result
-
-pub fn main() {
- io.debug(without_use())
- io.debug(with_use())
-}
-
-pub fn without_use() {
- result.try(get_username(), fn(username) {
- result.try(get_password(), fn(password) {
- result.map(log_in(username, password), fn(greeting) {
- greeting <> ", " <> username
- })
- })
- })
-}
-
-pub fn with_use() {
- use username <- result.try(get_username())
- use password <- result.try(get_password())
- use greeting <- result.map(log_in(username, password))
- greeting <> ", " <> username
-}
-
-// Here are some pretend functions for this example:
-
-fn get_username() {
- Ok("alice")
-}
-
-fn get_password() {
- Ok("hunter2")
-}
-
-fn log_in(_username: String, _password: String) {
- Ok("Welcome")
-}
diff --git a/src/content/chapter5_advanced_features/lesson00_use/en.html b/src/content/chapter5_advanced_features/lesson00_use/en.html
deleted file mode 100644
index b8e2641..0000000
--- a/src/content/chapter5_advanced_features/lesson00_use/en.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<p>
- Gleam lacks exceptions, macros, type classes, early returns, and a variety of
- other features, instead going all-in with just first-class-functions and
- pattern matching. This makes Gleam code easier to understand, but it can
- sometimes result in excessive indentation.
-</p>
-<p>
- Gleam's use expression helps out here by enabling us to write code that uses
- callbacks in an unindented style, as shown in the code window.
-</p>
-
-<p>
- The higher order function being called goes on the right hand side of the
- <code>&lt;-</code> operator. It must take a callback function as its final
- argument.
-</p>
-<p>
- The argument names for the callback function go on the left hand side of the
- <code>&lt;-</code> operator. The function can take any number of arguments,
- including zero.
-</p>
-<p>
- All the remaining code in the enclosing <code class="hljs">{}</code> block
- becomes the body of the callback function.
-</p>
-<p>
- This is a very capable and useful feature, but excessive application of
- <code>use</code> may result in code that is unclear otherwise, especially to
- beginners. Often using the regular function call syntax will result in more
- approachable code!
-</p>