2010-08-03 50 views
5

FsUnit源代碼包含一個不尋常的定義:「id」字面量的定義在哪裏?

let be = id

FSI輸出:

val was : ('a -> 'a)

「標識」 的語義是下面的語句的括號的形式:

let be x = x

FSI輸出:

val be : 'a -> 'a

可以看到微小的差別:後者示例替換表達式是真實,而第一語法將其表示爲(真)

讓我感到困惑的是,我無法在F#語言參考中找到任何對「id」的引用,它也沒有在「Programming F#」書中描述。此外,「id」不是保留關鍵字,我可以定義將「id」分配給其他內容,然後我不再以第一個示例中顯示的方式使用它。所以我想知道是否有任何描述這個文字和它的語義的F#文檔。

回答

1

這看起來不像字面。它看起來更像一個功能。具體來說,通過簽名和名稱猜測,它看起來像身份函數。