Example
state_effect.kina
Source
let f = fn(x : tensor<F32, []>) !{State} -> tensor<F32, []> {
let current = perform State.get() in
let new_val = current + x in
let dummy = perform State.set(new_val) in
new_val
} in
let initial_val = tensor<F32, []> { 1.0 } in
let handled = handle f(initial_val) with {
return(ret_val) => ret_val,
State.get(), k => k(tensor<F32, []> { 0.0 }),
State.set(v), k => k(v)
} in
handled