30 lines
633 B
Text
30 lines
633 B
Text
class Foo (α : Type) (β : Type) where
|
||
val : Nat
|
||
a : α
|
||
b : β
|
||
|
||
#check Foo.val
|
||
|
||
def valOf [s : Foo α β] : Nat :=
|
||
s.val
|
||
|
||
#eval valOf (s := { val := 10, a := true, b := false : Foo Bool Bool })
|
||
|
||
def valOf2 (α β : Type) [s : Foo α β] : Nat :=
|
||
s.val
|
||
|
||
#check valOf2 (s := { val := 10, a := true, b := false : Foo Bool Bool })
|
||
-- valOf2 Bool Bool
|
||
|
||
def f (x y z : Nat) := x + y + z
|
||
|
||
#check f (z := 10)
|
||
-- fun (x y : Nat) => f x y 10 : Nat → Nat → Nat
|
||
|
||
def g {α : Type} (a b : α) := b
|
||
#check g (b := 10)
|
||
-- fun (a : Nat) => g a 10
|
||
|
||
def h (α : Type) (a b : α) := b
|
||
#check h (b := true)
|
||
-- fun a => h Bool a true
|