Dear all, `?Syntax` documents that `?` has the lowest precedence, right under `=`.
Indeed it reads: *The following unary and binary operators are defined. They are listed in precedence groups, from highest to lowest. * and ends the list with *<- <<-* *assignment (right to left)* *=* *assignment (right to left)* *?* *help (unary and binary)* I believe it to be wrong, `=` has lower precedence than `?`. See the following example : `?` <- `+` x = 2 ? 3 x #> [1] 5 We see that `2 ? 3` is evaluated first, then the result is assigned to x, showing higher precedence for `?`. Compare it to the similar code using `<-` : x <- 2 ? 3 #> [1] 5 x #> [1] 2 Here first `x <- 2` is evaluated, then its output is added to 3, and the result `5` is printed. and we verify that `x` is still `2`. Showing lower precedence for `?` consistent with the doc. Hadley Wickham's package `lobstr` makes it easy to compare the parse trees: lobstr::ast({x = 2 ? 3}) #> o-`{` #> \-o-`=` #> +-x #> \-o-`?` #> +-2 #> \-3 lobstr::ast({x <- 2 ? 3}) #> o-`{` #> \-o-`?` #> +-o-`<-` #> | +-x #> | \-2 #> \-3 Best regards, Antoine [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel