Like Tomas, I find the paste0 readability to be **much** better, partly
because it allows for better indentation (as Tomas pointed out). Perhaps a
pointless email, but sometimes - for these subjective issues - it is
worthwhile to point out a difference in opinion.

Best,
Kasper

On Mon, Jun 2, 2025 at 12:27 PM Tomas Kalibera <tomas.kalib...@gmail.com>
wrote:

>
> On 6/2/25 17:37, Josiah Parry wrote:
> > Tomas,
> >
> > Here is a good example of where this functionality would be useful:
> >
> https://github.com/R-ArcGIS/arcgislayers/blob/2b29f4c254e7e5a1dadce8d4b0015a70dfae39d4/R/arc-open.R#L19-L56
> >
> > In order to prevent R CMD check notes I have to use `paste0()` to
> > concatenate long URLs. If we were able to use `\` to
> > separate the string across multiple lines, it would make the solution
> > much nicer!
>
> It may be a matter of taste. To me the current form
>
> #' furl <- paste0(
> #' "https://services3.arcgis.com/ZvidGQkLaDJxRSJ2/arcgis/rest/services/";,
> #'   "PLACES_LocalData_for_BetterHealth/FeatureServer/0"
> #' )
> #'
>
> would be actually clearer than say this:
>
> #' # FeatureLayer
> #' furl <-
> "https://services3.arcgis.com/ZvidGQkLaDJxRSJ2/arcgis/rest/services/\
> PLACES_LocalData_for_BetterHealth/FeatureServer/0
> <https://services3.arcgis.com/ZvidGQkLaDJxRSJ2/arcgis/rest/services/%5CPLACES_LocalData_for_BetterHealth/FeatureServer/0>
> "
> #'
>
> Inside a per-line comment (#), a backslash followed by a newline would
> probably be disallowed, anyway - e.g. in C it is considered dangerous
> and is discouraged. And the code resulting from splices is hard to read
> due to missing indentation. There is also risk of accidentally putting a
> space after the backslash before the end of line (which some
> languages/parsers then don't treat as a splice, some do, some issue a
> warning - of course it is hard to see in the code).
>
> The idea of automatically concatenating consecutive string literals as
> in C would not easily work in R. This is now valid R code:
>
> x <- "part1"
> "part2"
>
> if we introduced concatenation, we would change behavior of this code
> (the value of x would be different, the result of these two lines would
> be different).
>
> I think paste0() is not that bad in the end.
>
> Best
> Tomas
>
> > On Mon, Jun 2, 2025 at 3:19 AM Tomas Kalibera
> > <tomas.kalib...@gmail.com> wrote:
> >
> >
> >     On 5/28/25 04:15, Pavel Krivitsky via R-devel wrote:
> >     > Dear All,
> >     >
> >     > Perhaps this should go in r-package-devel, but I suspect that
> >     this is
> >     > going to turn into a feature request, and I want to run it by
> >     the list
> >     > before filing it in the Bugzilla.
> >     >
> >     > I would like to specify a long string literal without making the
> >     line
> >     > of code too long. In R,
> >     >
> >     > "abc
> >     > def"
> >     >
> >     > yields the string "abc\def", and, as far as I can tell, there is no
> >     > mechanism for preventing it from inserting a newline into the
> >     string.
> >     >
> >     > Putting a backslash before the newline, i.e.,
> >     >
> >     > "abc\
> >     > def"
> >     >
> >     > eliminates the newline in (that I know of) C/C++, Python, and
> Julia,
> >     > but it makes no difference in R.
> >     >
> >     > The implicit concatenation of Python and C/C++, e.g., "abc"
> >     "def", is a
> >     > syntax error as well in R.
> >     >
> >     > It is, of course, possible to use paste0(), but is there a more
> >     concise
> >     > built-in mechanism in R of which I am not aware?
> >     >
> >     > If not, I think it would make sense to bring R in line with the
> >     others.
> >     > Currently, backslash and no backslash before a newline behave
> >     > identically (at least as far as I can tell), so I doubt that a
> >     > nontrivial amount of code relies on the current behaviour. [1]
> >
> >     What would be real example of a long string literal you would want to
> >     enter this way?
> >
> >     For entering a long text with newlines, one can use raw strings in R
> >     (see ?Quotes) - but there you would see the newlines and indentation.
> >     I've seen code where  "paste0" has been aliased to a local function
> >     named with a single letter to make concatenation more concise.
> >
> >     Best
> >     Tomas
> >
> >     >
> >     >                               Any thoughts?
> >     >                               Pavel
> >     >
> >     > [1] On the off chance that it does, it should easy to check by
> >     > searching for "\\\n" in package sources, because a backslash
> >     before a
> >     > newline is a syntax error outside a string.
> >     > ______________________________________________
> >     > R-devel@r-project.org mailing list
> >     > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >     ______________________________________________
> >     R-devel@r-project.org mailing list
> >     https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Best,
Kasper

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to