mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 05:49:08 +00:00

Implements the new app header syntax as discussed in Zulip [1].
app [main] {
cli: platform "../platform/main.roc",
json: "../json/main.roc"
}
Old headers still parse and are automatically upgraded to the new
syntax by the formatter.
[1] 418444862
23 lines
640 B
Text
23 lines
640 B
Text
app [program] { pf: platform "platform.roc" }
|
|
|
|
interpolateString : Str -> Str
|
|
interpolateString = \name ->
|
|
"Hello from Roc $(name)!!!🤘🤘🤘"
|
|
|
|
# jint is i32
|
|
mulArrByScalar : List I32, I32 -> List I32
|
|
mulArrByScalar = \arr, scalar ->
|
|
List.map arr \x -> x * scalar
|
|
|
|
# java doesn't have unsigned numbers so we cope with long
|
|
# factorial : I64 -> I64
|
|
factorial = \n ->
|
|
if n < 0 then
|
|
# while we get the chance, exemplify a roc panic in an interop
|
|
crash "No negatives here!!!"
|
|
else if n == 0 then
|
|
1
|
|
else
|
|
n * (factorial (n - 1))
|
|
|
|
program = { interpolateString, factorial, mulArrByScalar }
|