Quoting (was: inline C/C++ in R: question and suggestion
On 22/05/2007 4:01 PM, Vladimir Dergachev wrote:
On Tuesday 22 May 2007 3:52 pm, Duncan Murdoch wrote:
On 5/22/2007 1:59 PM, Oleg Sklyar wrote: One suggestion that probably doesn't affect your package: It would be even nicer if R incorporated something that Duncan Temple Lang suggested last year, namely a new kind of quoting that didn't need escapes in the string. He suggested borrowing triple quotes from Python; I suggested something more like heredocs as in shells or Perl, or like \verb in TeX, in case you wanted triple quotes in your C function. It would be nice to settle on something, so that instead of
I second that. My favorite implementation of this is in Tcl, where curly
braces {} mean that the text they enclose is unmodified. Since language
constructs using them are normally balanced this is not an impediment.
That wouldn't work in R, because the parser couldn't tell whether
{ a }
was a block of code or a quoted string.
One extremely useful application of this (aside from long strings) is
specifying inline data frames - I don't know how to do this otherwise.
I.e. something like:
A<- scan.string({#
Id Value Mark
1 a 3
2 b 4
# })
When your data doesn't contain quote marks, you can just use regular
quotes to do that. I don't know of a scan.string function, but this works:
A <- read.table(textConnection("#
Id Value Mark
1 a 3
2 b 4
#"), head = TRUE)
I think DTL's suggestion would be most useful when putting a lot of code
in a string, where the escapes make the code harder to read. For
example, just about any function using a complicated regular expression.
Duncan Murdoch