Syntax 什么是目的??在F#中?

Syntax 什么是目的??在F#中?,syntax,f#,Syntax,F#,F#2.0语言规范的(符号关键字)列出了符号关键字??(双问号)与今天使用的相同(即,不保留供将来使用)。它的目的是什么?msdn中没有提到它,它似乎不是OCAML符号,我也从未见过使用它的示例 编辑 一个可能的答案是??是保留供将来使用的符号关键字,它意外地被放置在符号关键字列表中,而不是将来的符号关键字。这会很奇怪,原因有二: 未来的符号关键字列表只包含两个条目:~和`,它直接放在另一个列表下。未来的符号关键字是非常突出的,规范编写者不可能简单地忘记它 (符号运算符)说明除后期绑定运算符外

F#2.0语言规范的(符号关键字)列出了符号关键字??(双问号)与今天使用的相同(即,不保留供将来使用)。它的目的是什么?msdn中没有提到它,它似乎不是OCAML符号,我也从未见过使用它的示例

编辑 一个可能的答案是??是保留供将来使用的符号关键字,它意外地被放置在符号关键字列表中,而不是将来的符号关键字。这会很奇怪,原因有二:

  • 未来的符号关键字列表只包含两个条目:~和`,它直接放在另一个列表下。未来的符号关键字是非常突出的,规范编写者不可能简单地忘记它

  • (符号运算符)说明除后期绑定运算符外,库或用户定义的符号运算符不得以问号开头?而且?规范只说它被当作关键字处理,这显然不需要它的实现。

    规范说它被当作关键字处理。这一定意味着它正在使用吗?我可以告诉你,事实并非如此。@Daniel-我想你的评论可以作为一个很好的答案。(也就是说,符号关键字
    今天被用作保留供将来使用的符号关键字:-)@Daniel:这个答案对我来说没问题,因为它证实了我作为语言的“用户”没有遗漏任何东西。然而,出于好奇,我仍然想知道编译器的内部用途是什么,特别是因为没有其他这样的特殊符号。@Marc:我冒昧地猜测它还没有定义。看来这不过是一种为将来使用而保留的方式。为什么F#团队决定将其作为关键字而不是“保留以备将来使用”(la“method”、“pure”等),我不知道。@Marc-我认为F#团队只是保留了一些语法,以备以后需要,并希望避免破坏更改。例如,有人建议将
    foo?Bar
    作为调用
    Bar
    if
    foo!=空
    。F#已经将
    foo?Bar
    用于动态调用,因此它可能会使用
    foo?Bar
    (用于此或其他用途)。如果没有特殊处理,您可以定义运算符
    ??
    ,可能的更改将破坏您的代码。。。(编辑(在阅读您的评论后)-是的,我不太清楚为什么它没有被列为未来使用。这可能是规格错误)