Skip to main content Svelte Highlight v7.21.1

Roc language preview

1. Hello, world

an app header, backpassing, and string interpolation
horizon-dark
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"
atom-one-dark
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"
github-dark
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"
dracula
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"
nord
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"
github
app [main] { pf: platform "https://github.com/roc-lang/basic-cli" }

## Doubles a number
double = \n -> n * 2

main =
    result <- Task.await (Stdout.line "Hello, $(name)!")
    when result is
        Ok _ -> Stdout.line "done"
        Err _ -> crash "failed"

2. Pattern matching

when/is with Ok and Err tags
horizon-dark
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"
atom-one-dark
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"
github-dark
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"
dracula
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"
nord
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"
github
describe = \num ->
    when num is
        0 -> "zero"
        n if n < 0 -> "negative"
        _ -> "positive"

3. Pipelines

the |> operator chaining function calls
horizon-dark
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum
atom-one-dark
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum
github-dark
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum
dracula
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum
nord
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum
github
total =
    [1, 2, 3]
    |> List.map (\n -> n * 2)
    |> List.sum