You can't change the parser. Changes like `+` <- `-` change the
function that is called when the expression contains a function call to
`+`; this happens in `eval()`, not in `parse()`. There are never any
function calls to `->`, because the parser outputs a call to `<-` with
the operands reversed when it sees that token.
Duncan Murdoch
On 02/03/2024 6:06 a.m., Adrian Dușa wrote:
That would have been an elegant solution, but it doesn't seem to work:
`->` <- `+`
1 -> 3 # expecting 4
Error in 3 <- 1 : invalid (do_set) left-hand side to assignment
It is possible to reassign other multiple character operators:
`%%` <- `+`
1 %% 3
[1] 4
The assignment operator `->` is so special for the R parser, that it seems
impossible to change.
On Fri, Mar 1, 2024 at 11:30 PM <avi.e.gr...@gmail.com> wrote:
Adrian,
That is indeed a specialized need albeit not necessarily one that cannot
be done by requiring an alternate way of typing a formula that avoids being
something the parser sees as needed to do at that level.
In this case, my other questions become moot as I assume the global
assignment operator and somethings like assign(“xyz”, 5) will not be in the
way.
What I was wondering about is what happens if you temporarily disable the
meaning of the assignment operator <- and turn it back on after.
In the following code, for no reason, I redefine + to mean – and then undo
it:
temp <- `+`
`+` <- `-`
5 + 3
[1] 2
`+` <- temp
5 + 3
[1] 8
[[alternative HTML version deleted]]
______________________________________________
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