diff options
Diffstat (limited to 'src/content/chapter5_advanced_features/lesson00_use')
-rw-r--r-- | src/content/chapter5_advanced_features/lesson00_use/code.gleam | 38 | ||||
-rw-r--r-- | src/content/chapter5_advanced_features/lesson00_use/en.html | 31 |
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><-</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><-</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> |