"id"字面定义在哪里?

Vag*_*lov 5 f#

FsUnit源代码包含一个不寻常的定义:

let be = id

FSI输出:

val was : ('a -> 'a)

"id"的语义是以下语句的括号形式:

let be x = x

FSI输出:

val be : 'a -> 'a

你可以看到微小的差别:后者示例替换表达式为真,而第一语法将其表示为(真).

令我困惑的是,我在F#语言参考中找不到任何对"id"的引用,也没有在"Programming F#"一书中描述过.此外,"id"不是保留关键字,我可以定义为其他东西分配"id",然后我不再能够以第一个例子中显示的方式使用它.所以我想知道是否有任何描述这个文字及其语义的F#文档.

Tim*_*son 12

大多数这些内置函数都在FSharp.CoreMicrosoft.FSharp.Core.Operators模块中定义.

它们记录在MSDN上.这是id:http://msdn.microsoft.com/en-gb/library/ee353607.aspx