我什么时候应该更喜欢创建数据类型而不是计算类型?
具体示例 - 给出:
data Zero : Set where
record One : Set where
data Nat : Set where
zero : Nat
suc : Nat -> Nat
Run Code Online (Sandbox Code Playgroud)
想要定义 \lt,它们各自的优点和缺点是什么:
-- a new datatype
data _<_ : Nat -> Nat -> Set where
ozero : {n : Nat} -> zero < suc n
osuc : {n m : Nat} -> n < m -> suc n < suc m
Run Code Online (Sandbox Code Playgroud)
与
-- calculating
_<_ : Nat -> Nat -> Set
zero < zero = Zero
zero < suc m = One
suc n < zero = Zero
suc n < suc m = n < m
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经得到了这些: