quest

Sign in to start training

quest keeps your progress, streaks, and scores tied to your account — so you can pick up on any device.

Synced everywhere. Progress follows you across laptop and phone.
Streaks & stats. See your daily run and every score over time.
Your profile. A name and avatar for the work you do here.

We only use Google to sign you in and sync progress. No posting, no contacts — ever.

Applied Intermediate

13  Combinators

Most match statements on Option have a one-word replacement. Transform the inside of an Option with map, then fold a whole parse-with-default flow into a single chain.

Step 2 / 2

In port, parse the configured port or fall back to 8080 -- one chain, no branches.

Hints
  • and_then chains a step that itself returns an Option; parse().ok() is exactly that.
  • Finish with .unwrap_or(8080).
13_combinators.rs
Reset to starterCompiled in a sandbox; hidden checks must pass.
Reveal solution
fn port(config: Option<&str>) -> u16 {
    config.and_then(|s| s.parse().ok()).unwrap_or(8080)
}