我正在阅读 F# 规范——我能找到的最新的规范,在这里找到——以努力以可以说是困难的方式学习该语言。在“3.6 符号关键字”部分中,规范指出:
以下符号或部分符号字符序列被视为关键字:
token symbolic-keyword = let! use! do! yield! return! | -> <- . : ( ) [ ] [< >] [| |] { } ' # :?> :? :> .. :: := ;; ; = _ ? ?? (*) <@ @> <@@ @@>
在下一节“3.7 符号运算符”中,它指出:
用户定义和库定义的符号运算符是如下所示的字符序列,除非字符序列是符号关键字(第 3.6 节)。
regexp first-op-char = !%&*+-./<=>@^|~ regexp op-char = first-op-char | ? token quote-op-left = | <@ <@@ token quote-op-right = | @> @@> token symbolic-op = | ? | ?<- | first-op-char op-char* | quote-op-left | quote-op-right
我可能遗漏了一些明显的东西,但在我看来,规范声明运算符/关键字、、、、和?
都是符号关键字和符号运算符。那么……他们是哪一个?我如何知道天气以使用符号关键字标记或符号运算符标记?@>
@@>
<@
<@@
在此先感谢,布兰登
编辑要清楚,我想知道为什么规范说明符号运算符可以在声明它们不能之后立即成为这些符号。