mirror of
https://github.com/roc-lang/roc.git
synced 2024-09-22 08:17:40 +03:00
52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
app "closure"
|
|
packages { pf: "platform/main.roc" }
|
|
imports [pf.Task]
|
|
provides [main] to pf
|
|
|
|
# see https://github.com/rtfeldman/roc/issues/985
|
|
main : Task.Task {} []
|
|
main = closure1 {}
|
|
# |> Task.after (\_ -> closure2 {})
|
|
# |> Task.after (\_ -> closure3 {})
|
|
# |> Task.after (\_ -> closure4 {})
|
|
# ---
|
|
closure1 : {} -> Task.Task {} []
|
|
closure1 = \_ ->
|
|
Task.succeed (foo toUnitBorrowed "a long string such that it's malloced")
|
|
|> Task.map (\_ -> {})
|
|
|
|
toUnitBorrowed = \x -> Str.countGraphemes x
|
|
|
|
foo = \f, x -> f x
|
|
|
|
# ---
|
|
# closure2 : {} -> Task.Task {} []
|
|
# closure2 = \_ ->
|
|
# x : Str
|
|
# x = "a long string such that it's malloced"
|
|
#
|
|
# Task.succeed {}
|
|
# |> Task.map (\_ -> x)
|
|
# |> Task.map toUnit
|
|
#
|
|
# toUnit = \_ -> {}
|
|
#
|
|
# # ---
|
|
# closure3 : {} -> Task.Task {} []
|
|
# closure3 = \_ ->
|
|
# x : Str
|
|
# x = "a long string such that it's malloced"
|
|
#
|
|
# Task.succeed {}
|
|
# |> Task.after (\_ -> Task.succeed x |> Task.map (\_ -> {}))
|
|
#
|
|
# # ---
|
|
# closure4 : {} -> Task.Task {} []
|
|
# closure4 = \_ ->
|
|
# x : Str
|
|
# x = "a long string such that it's malloced"
|
|
#
|
|
# Task.succeed {}
|
|
# |> Task.after (\_ -> Task.succeed x)
|
|
# |> Task.map (\_ -> {})
|