%=>% would have precendence ('order of operations') problems also.
A + B %=>% C
is equivalent to
A + ( B %=>% C)
and I don't think that is what you want.
as.list(quote(A + B %=>% C)) shows the first branch in the parse tree.
The following function, str.language, shows the entire parse tree, as in
> str.language(quote(A + B %=>% C))
`quote(A + B %=>% C)` call(3): A + B %=>% C
`` name(1): +
`` name(1): A
`` call(3): B %=>% C
`` name(1): %=>%
`` name(1): B
`` name(1): C
str.language <-
function (object, ..., level = 0, name = myDeparse(substitute(object)))
{
abbr <- function(string, maxlen = 25) {
if (length(string) > 1 || nchar(string) > maxlen)
paste(substring(string[1], 1, maxlen), "...", sep = "")
else string
}
myDeparse <- function(object) {
if (!is.environment(object)) {
deparse(object)
}
else {
ename <- environmentName(object)
if (ename == "")
ename <- "<unnamed env>"
paste(sep = "", "<", ename, "> ", paste(collapse = " ",
objects(object)))
}
}
cat(rep(" ", level), sep = "")
if (is.null(name))
name <- ""
cat(sprintf("`%s` %s(%d): %s\n", abbr(name), class(object),
length(object), abbr(myDeparse(object))))
a <- attributes(object)
if (is.recursive(object) && !is.environment(object)) {
object <- as.list(object)
names <- names(object)
for (i in seq_along(object)) {
str.language(object[[i]], ..., level = level + 1,
name = names[i])
}
}
a$names <- NULL
if (length(a) > 0) {
str.language(a, level = level + 1, name = paste("Attributes of",
abbr(name)))
}
}
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Tue, Apr 12, 2016 at 11:59 PM, Adrian Du?a <dusa.adrian at unibuc.ro>
wrote:
I suppose it would work, although "=>" is rather a descriptive symbol and
less a function.
But choosing between quoting:
"A + B => C"
and a regular function:
A + B %=>% C
probably quoting is the most straightforward, as the result of the foo()
function has to be a string anyways (which is parsed by other functions).
On Tue, Apr 12, 2016 at 6:20 PM, Richard M. Heiberger <rmh at temple.edu>
wrote:
Would making it regular function %=>%, using "%" instead of quotes,
work for you?
On Tue, Apr 12, 2016 at 11:09 AM, Adrian Du?a <dusa.adrian at unibuc.ro>
wrote:
On Tue, Apr 12, 2016 at 2:08 PM, Duncan Murdoch <
murdoch.duncan at gmail.com>
[...]
It never gets to evaluating it. It is not a legal R statement, so
If you want to pass arbitrary strings to a function, you need to put
in quotes.
I see. I thought it was parsed inside the function, but if it's parsed
before then quoting is the only option.
To Keith: no, I mean it like this "A + B => C" which is translated as:
"the union of A and B is sufficient for C" in set theoretic language.
The "=>" operator means sufficiency, while "<=" means necessity.
the expression is good enough, I was just curious if the quotes could
made redundant, somehow.
Thank you both,
Adrian
--
Adrian Dusa
University of Bucharest
Romanian Social Data Archive
Soseaua Panduri nr.90
050663 Bucharest sector 5
Romania
[[alternative HTML version deleted]]