42 lines
980 B
Text
42 lines
980 B
Text
new_frontend
|
|
def tst1 : IO Unit := do
|
|
IO.println (1 : Float);
|
|
IO.println ((1 : Float) + 2);
|
|
IO.println ((2 : Float) - 3);
|
|
IO.println ((3 : Float) * 2);
|
|
IO.println ((3 : Float) / 2);
|
|
IO.println (decide ((3 : Float) < 2));
|
|
IO.println (decide ((3 : Float) < 4));
|
|
IO.println ((3 : Float) == 2);
|
|
IO.println ((2 : Float) == 2);
|
|
IO.println (decide ((3 : Float) ≤ 2));
|
|
IO.println (decide ((3 : Float) ≤ 3));
|
|
IO.println (decide ((3 : Float) ≤ 4));
|
|
pure ()
|
|
|
|
structure Foo :=
|
|
(x : Nat)
|
|
(w : UInt64)
|
|
(y : Float)
|
|
(z : Float)
|
|
|
|
@[noinline] def mkFoo (x : Nat) : Foo :=
|
|
{ x := x, w := x.toUInt64, y := x.toFloat / 3, z := x.toFloat / 2 }
|
|
|
|
def tst2 (x : Nat) : IO Unit := do
|
|
let foo := mkFoo x;
|
|
IO.println foo.y;
|
|
IO.println foo.z
|
|
|
|
@[noinline] def fMap (f : Float → Float) (xs : List Float) :=
|
|
xs.map f
|
|
|
|
def tst3 (xs : List Float) (y : Float) : IO Unit :=
|
|
IO.println (fMap (fun x => x / y) xs)
|
|
|
|
def main : IO Unit := do
|
|
tst1;
|
|
IO.println "-----";
|
|
tst2 7;
|
|
tst3 [3, 4, 7, 8, 9, 11] 2;
|
|
pure ()
|