2025-06-28 00:41:29 +00:00
|
|
|
fn foo (val) -> receive {
|
2025-06-27 22:48:27 +00:00
|
|
|
(:report) -> {
|
|
|
|
print! ("LUDUS SAYS ==> value is {val}")
|
2025-06-28 00:41:29 +00:00
|
|
|
foo (val)
|
2025-06-27 22:48:27 +00:00
|
|
|
}
|
|
|
|
(:set, x) -> {
|
|
|
|
print! ("LUDUS SAYS ==> foo! was {val}, now is {x}")
|
2025-06-28 00:41:29 +00:00
|
|
|
foo (x)
|
2025-06-27 22:48:27 +00:00
|
|
|
}
|
|
|
|
(:get, pid) -> {
|
|
|
|
print! ("LUDUS SAYS ==> value is {val}")
|
|
|
|
send (pid, (:response, val))
|
2025-06-28 00:41:29 +00:00
|
|
|
foo (val)
|
2025-06-27 22:48:27 +00:00
|
|
|
}
|
2025-06-28 00:41:29 +00:00
|
|
|
}
|
2025-06-27 00:30:40 +00:00
|
|
|
|
2025-06-28 00:41:29 +00:00
|
|
|
let fooer = spawn! (fn () -> foo (42))
|
|
|
|
print! (fooer)
|
|
|
|
send (fooer, (:set, 23))
|
2025-06-27 22:48:27 +00:00
|
|
|
yield! ()
|
2025-06-28 00:41:29 +00:00
|
|
|
send (fooer, (:get, self ()))
|
2025-06-27 22:48:27 +00:00
|
|
|
yield! ()
|
2025-06-28 00:41:29 +00:00
|
|
|
|
|
|
|
flush! ()
|
|
|
|
|