27 lines
514 B
Text
27 lines
514 B
Text
def f1 (x : Nat) : IO Unit :=
|
||
unless x > 10 do
|
||
IO.println s!"x: {x}"
|
||
|
||
#eval f1 0
|
||
#eval f1 100
|
||
|
||
def f2 (x : Nat) (ref : IO.Ref Nat) : IO Nat :=
|
||
return x + (←ref.get)
|
||
|
||
#eval id (α := IO Nat) do f2 5 (← IO.mkRef 10)
|
||
|
||
def f3 (x : Nat) : IO Nat :=
|
||
try
|
||
IO.println x
|
||
throw $ IO.userError "failed"
|
||
catch
|
||
| IO.Error.userError msg => IO.println s!"at catch: {msg}"; pure 0
|
||
| ex => throw ex
|
||
|
||
#eval f3 5
|
||
|
||
def f4 (xs : List Nat) : IO Unit :=
|
||
for x in xs do
|
||
IO.println x
|
||
|
||
#eval f4 [1,2,3]
|