如果?foo不弄乱定义R语法的C代码,就不能做"裸"的事情.例如,你不能[fnord有意义.
这来自R源代码中gram.y的语法定义.
| '~' expr %prec TILDE { $$ = xxunary($1,$2); }
| '?' expr { $$ = xxunary($1,$2); }
| expr ':' expr { $$ = xxbinary($2,$1,$3); }
| expr '+' expr { $$ = xxbinary($2,$1,$3); }
Run Code Online (Sandbox Code Playgroud)
上面的第二行定义了语法?foo.你究竟想做什么?