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.Core库Microsoft.FSharp.Core.Operators模块中定义.
它们记录在MSDN上.这是id:http://msdn.microsoft.com/en-gb/library/ee353607.aspx