Having some line-breaking character for string literals would have benefits as string literals can then be constructed parse-time rather than run-time. I have run into this myself a few times as well. One way to at least emulate something like that is the following.
`%+%` <- function(x,y) paste0(x,y) "hello" %+% " pretty" %+% " world" -Mark Op wo 14 jun. 2017 om 13:53 schreef Andreas Kersting <r-de...@akersting.de>: > On Wed, 14 Jun 2017 06:12:09 -0500, Duncan Murdoch < > murdoch.dun...@gmail.com> wrote: > > > On 14/06/2017 5:58 AM, Andreas Kersting wrote: > > > Hi, > > > > > > I would really like to have a way to split long string literals across > > > multiple lines in R. > > > > I don't understand why you require the string to be a literal. Why not > > construct the long string in an expression like > > > > paste0("aaa", > > "bbb") > > > > ? Surely the execution time of the paste0 call is negligible. > > > > Duncan Murdoch > > Actually "execution time" is precisely one of the reasons why I would like > to see this feature as - depending on the context (e.g. in a tight loop) - > the execution time of paste0 (or probably also glue, thanks Gabor) is not > necessarily insignificant. > > The other reason is style: I think it is cleaner if we can construct such > a long string literal without the need for a function call. > > Andreas > > > > > > > Currently, if a string literal spans multiple lines, there is no way to > > > inhibit the introduction of newline characters: > > > > > > > "aaa > > > + bbb" > > > [1] "aaa\nbbb" > > > > > > > > > If a line ends with a backslash, it is just ignored: > > > > > > > "aaa\ > > > + bbb" > > > [1] "aaa\nbbb" > > > > > > > > > We could use this fact to implement string splitting in a fairly > > > backward-compatible way, since currently such trailing backslashes > > > should hardly be used as they do not have any effect. The attached > patch > > > makes the parser ignore a newline character directly following a > backslash: > > > > > > > "aaa\ > > > + bbb" > > > [1] "aaabbb" > > > > > > > > > I personally would also prefer if leading blanks (spaces and tabs) in > > > the second line are ignored to allow for proper indentation: > > > > > > > "aaa \ > > > + bbb" > > > [1] "aaa bbb" > > > > > > > "aaa\ > > > + \ bbb" > > > [1] "aaa bbb" > > > > > > This is also implemented by this patch. > > > > > > > > > An alternative approach could be to have something like > > > > > > ("aaa " > > > "bbb") > > > > > > or > > > > > > ("aaa ", > > > "bbb") > > > > > > be interpreted as "aaa bbb". > > > > > > I don't know the ins and outs of the parser of R (hence: please very > > > carefully review the attached patch), but I guess this would be more > > > work to implement!? > > > > > > > > > What do you think? Is there anybody else who is missing this feature in > > > the first place? > > > > > > Regards, > > > Andreas > > > > > > > > > > > > ______________________________________________ > > > 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 > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel