两个简单的F#问题

时间:2011-10-18 22:23:19

标签: f#

我想了解F#的两个片段,但不知道要google什么。第一:

let ``1+2`` () = .... 

我猜这只是意味着“将表达式转换为标识符”?但是,如果我想引用它,该功能是什么?

其次,字符^在类型中出现时的含义是什么?我已经找到了几个提及它,但解释总是只是说“类型是这个”而不是“它不同于没有1 ^ 1的类型......”。例如:

let inline blah x y = x+y;;
val inline blah :
   ^a ->  ^b ->  ^c
    when ( ^a or  ^b) : (static member ( + ) :  ^a *  ^b ->  ^c)

非常感谢提前。

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

反引用语法确实只是一种将任意字符“引用”为标识符的方法,我不确定它是否有名称。它通常用于例如

let ``This Identifier Contains Spaces`` = 42

foo.``member``(42)  // 'member' is an F# keyword, but maybe it was the name of some 
                    // method from C# code you're using, so here's a way to call it

克拉表示静态解析的类型参数:

http://msdn.microsoft.com/en-us/library/dd548046.aspx

用于ad-hoc重载/通用。