R 4.0.0。使定义 foo"(...)" 运算符成为可能,类似于新引入的 r"(...)" 语法?

Kar*_*ius 6 syntax interpreter r rawstring

R 4.0.0 为原始字符串引入了新语法:

r"(raw string here can contain anything except the closing sequence)"
Run Code Online (Sandbox Code Playgroud)

但是 R 3.xx 中的相同构造产生了语法错误:

错误:"r"(asdasd)"" 中的意外字符串常量

这是否意味着解释器在 R 4.0.0 中发生了变化。?
如果是这样 - R 4.0.0。提供一种机制来定义自定义函数,例如foo"()"

Mic*_*ico 4

不,目前这是不可能的(我也不认为它很快就会成为可能)。

这是新闻项目:

有一种新语法用于指定原始字符常量,类似于 C++ 中使用的语法:r"(...)"使用...不包含序列的任何字符序列)"。这使得编写包含反斜杠或同时包含单引号和双引号的字符串变得更容易。有关更多详细信息,请参阅?Quotes

https://cran.r-project.org/doc/manuals/r-devel/NEWS.html

然后从?Quotes

原始字符常量也可以使用与 C++ 中使用的语法类似的语法:r"(...)"使用...任何字符序列,但它不能包含结束序列 )"。分隔符对[]{}也可以使用,并且R可以用来代替r。为了提高灵活性,可以在开始引号和开始分隔符之间放置多个破折号,只要结束分隔符和结束引号之间出现相同数量的破折号即可。

https://github.com/wch/r-source/blob/trunk/src/library/base/man/Quotes.Rd

这是添加此功能的提交(gitSVN 补丁的镜像):

https://github.com/wch/r-source/commit/8b0e58041120ddd56cd3bb0442ebc00a3ab67ebc