簡體   English   中英

檢查cnat。 並得到類型返回

[英]Check cnat. and got Type return

全部

我試圖理解 SF-LF 書 chp4 中提到的教堂數字。

Definition cnat := forall X : Type, (X -> X) -> X -> X.
Definition one : cnat :=
  fun (X : Type) (f : X -> X) (x : X) => f x.
Check cnat.
Check one.

我得到

cnat
     : Type
one
     : cnat

似乎cnat是某種類型,同時還有function。 怎么可能既是type又是function? 任何人都可以幫助解釋一下嗎?

forall (X: Type), ”語法是一種從X參數化的類型形成類型的方法。 forall (X: Type), (X -> X) -> X -> X一種函數類型,給定類型X會產生一個類型為(X -> X) -> X -> X的值(即本身就是一個函數)。

fun (X: Type) => ” 語法是一種從X參數化的術語形成 function 的方法。 fun (X: Type) (f: X -> X) (x: X) => fx一個 function ,給定X類型會產生 function fun (f: X -> X) (x: X) => fx (它本身就是一個函數)。

funforall的共同點是它們涉及binders ,例如(X: Type) (也像(f: X -> X) , (x: X) )。 fun是一種涉及綁定器以形成函數的構造,但並非所有涉及綁定器的構造都形成函數: forall是一種涉及綁定器以形成類型的構造。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM