web-dev-qa-db-ja.com

R 4.0.0を実行します。新しく導入されたr "(...)"構文と同様に、foo "(...)"演算子を定義できるようにしますか?

R 4.0.0では、生の文字列の新しい構文が導入されています。

_r"(raw string here can contain anything except the closing sequence)"
_

しかし、R 3.x.xの同じ構成で構文エラーが発生しました。

エラー: "r"(asdasd) "に予期しない文字列定数があります

R 4.0.0でインタプリタが変更されたことを意味しますか? ?
そしてもしそうなら-R 4.0.0はそうします。 foo"()"のようなカスタム関数を定義するメカニズムを提供しますか?

いいえ、現時点では不可能です(すぐに可能になるとは思いません)。

NEWSアイテムは次のとおりです。

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

これは、この機能が追加された(gitのSVNパッチのミラー)コミットです。

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

4
MichaelChirico