依赖类型

2023年08月16日 02:30
def cons (α : Type) (a : α) (as : List α) : List α :=
  List.cons a as

#check cons Nat        -- NatList NatList Nat
#check cons Bool       -- BoolList BoolList Bool
#check cons            -- (α : Type) → α → List α → List α

类似于宏/多态,函数的具体类型和实现随参数而变化。