Files
lux/examples/builtin_effects.lux
2026-02-17 06:52:44 -05:00

21 lines
691 B
Plaintext

fn safeDivide(a: Int, b: Int): Int with {Fail} = if b == 0 then Fail.fail("Division by zero") else a / b
fn validatePositive(n: Int): Int with {Fail} = if n < 0 then Fail.fail("Negative number not allowed") else n
fn compute(input: Int): Int with {Console, Fail} = {
Console.print("Starting computation...")
Console.print("Step 1: validating input")
let validated = validatePositive(input)
Console.print("Step 2: processing")
let result = safeDivide(validated * 2, 1)
Console.print("Result: " + toString(result))
result
}
fn main(): Unit with {Console} = {
let result = run compute(21) with {}
Console.print("Done!")
}
let output = run main() with {}