38 lines
1.2 KiB
Text
38 lines
1.2 KiB
Text
def foo (a : Array Nat) : Array Nat :=
|
|
let a := a.push 0;
|
|
let a := a.push 1;
|
|
let a := a.push 2;
|
|
let a := a.push 3;
|
|
a
|
|
|
|
def main : IO UInt32 :=
|
|
do
|
|
let a : Array Nat := Array.empty;
|
|
IO.println (toString a);
|
|
IO.println (toString a.sz);
|
|
let a := foo a;
|
|
IO.println (toString a);
|
|
let a := a.map (fun a => a + 10);
|
|
IO.println (toString a);
|
|
IO.println (toString a.sz);
|
|
let a1 := a.pop;
|
|
let a2 := a.push 100;
|
|
IO.println (toString a1);
|
|
IO.println (toString a2);
|
|
let a2 := a.pop;
|
|
IO.println a2;
|
|
IO.println $ (([1, 2, 3, 4].toArray).map (fun a => a + 2)).map toString;
|
|
IO.println $ ([1, 2, 3, 4].toArray.extract 1 3);
|
|
IO.println $ ([1, 2, 3, 4].toArray.extract 0 100);
|
|
IO.println $ ([1, 2, 3, 4].toArray.extract 1 1);
|
|
IO.println $ ([1, 2, 3, 4].toArray.extract 2 4);
|
|
IO.println [1,2,3,4].toArray.reverse;
|
|
IO.println ([] : List Nat).toArray.reverse;
|
|
IO.println [1,2,3].toArray.reverse;
|
|
IO.println $ [1,2,3,4].toArray.filter (fun a => a % 2 == 0);
|
|
IO.println $ [1,2,3,4,5].toArray.filter (fun a => a % 2 == 0);
|
|
IO.println $ [1,2,3,4,5].toArray.filter (fun a => a % 2 == 1);
|
|
IO.println $ [1,2,3,4].toArray.filter (fun a => a > 2);
|
|
IO.println $ [1,2,3,4].toArray.filter (fun a => a > 10);
|
|
IO.println $ [1,2,3,4].toArray.filter (fun a => a > 0);
|
|
pure 0
|