Library examples.future_fibonacci__code
Require Import zoo.prelude.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_parabs.future.
Require Import zoo_parabs.pool.
Require Import zoo.options.
Definition future_fibonacciΩ mainβ : val :=
πΏπ²π° "main" "ctx" "n" β
πΆπ³ "n" β€ 1 ππ΅π²π» (
"n"
) π²πΉππ² (
πΉπ²π "fut1" =
futureΩ async "ctx" (π³ππ» "ctx" β "main" "ctx" ("n" - 1))
πΆπ»
πΉπ²π "fut2" =
futureΩ async "ctx" (π³ππ» "ctx" β "main" "ctx" ("n" - 2))
πΆπ»
futureΩ wait "ctx" "fut1" + futureΩ wait "ctx" "fut2"
).
Definition future_fibonacciΩ main : val :=
π³ππ» "num_worker" "n" β
poolΩ run
"num_worker"
(π³ππ» "ctx" β future_fibonacciΩ mainβ "ctx" "n").
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_parabs.future.
Require Import zoo_parabs.pool.
Require Import zoo.options.
Definition future_fibonacciΩ mainβ : val :=
πΏπ²π° "main" "ctx" "n" β
πΆπ³ "n" β€ 1 ππ΅π²π» (
"n"
) π²πΉππ² (
πΉπ²π "fut1" =
futureΩ async "ctx" (π³ππ» "ctx" β "main" "ctx" ("n" - 1))
πΆπ»
πΉπ²π "fut2" =
futureΩ async "ctx" (π³ππ» "ctx" β "main" "ctx" ("n" - 2))
πΆπ»
futureΩ wait "ctx" "fut1" + futureΩ wait "ctx" "fut2"
).
Definition future_fibonacciΩ main : val :=
π³ππ» "num_worker" "n" β
poolΩ run
"num_worker"
(π³ππ» "ctx" β future_fibonacciΩ mainβ "ctx" "n").