aboutsummaryrefslogtreecommitdiff
path: root/src/content/chapter5_advance_features/lesson01_use_sugar/code.gleam
blob: ac61062c663c6b4f1fde0d8b3fe69ac55d8e802f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import gleam/io
import gleam/result

pub fn main() {
  let x = {
    use username <- result.try(get_usename())
    use password <- result.try(get_password())
    use greeting <- result.map(log_in(username, password))
    greeting <> ", " <> username
  }

  case x {
    Ok(greeting) -> io.println(greeting)
    Error(error) -> io.println_error(error)
  }
}

// Here are some pretend functions for this example:

fn get_usename() {
  Ok("alice")
}

fn get_password() {
  Ok("hunter2")
}

fn log_in(_username: String, _password: String) {
  Ok("Welcome")
}