blob: fd51496fb7f3c561cf3aee11c99aea064db7efeb [file] [edit]
import init.lean.evalconst
open Lean
def someVal := 100
def someVal2 : UInt64 := 302
def someVal3 : Bool := true
def add10 (n : Nat) := n+10
def mul10 (n : Nat) := n*10
def inc (n : Nat) := n+1
unsafe def evalNatFn (fName : Name) (n : Nat) : IO Unit :=
do f ← evalConst (Nat → Nat) fName,
IO.println (f n)
unsafe def evalVal (α : Type) [Inhabited α] [ToString α] (n : Name) : IO Unit :=
do v ← evalConst α n,
IO.println v
unsafe def main (xs : List String) : IO Unit :=
do let x := xs.head.toNat,
sortConstTable, -- we don't sort the constant table by default in standalone applications
evalNatFn `add10 x,
evalNatFn `mul10 x,
evalNatFn `inc x,
evalVal Nat `someVal,
evalVal UInt64 `someVal2,
evalVal Bool `someVal3,
pure ()