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