[Rd] Printing of anonymous functions in calls is sub-optimal

Duncan Murdoch murdoch.duncan at gmail.com
Sat Feb 16 16:18:58 CET 2013


On 13-02-15 10:45 AM, Hadley Wickham wrote:
> e.g.
>
> substitute(f(x), list(f = function(x) x + 1))
> # function (x)
> # x + 1(x)
>
> An extra pair of parentheses would really help:
>
> (function(x)
> x + 1)(x)
>
> (Better indenting etc would be nice, but not necessary for correct
> understand of the code)

This is a little tricky for the deparser.  It sees a call to a function 
which was determined by an expression.  Sometimes you want parens, 
sometimes you don't.  For example, if getfun(y) returns a function, it's 
clearer to display a call as getfun(y)(x) than (getfun(y))(x).

I'll see if I can work out which kinds of expressions need to be 
parenthesized and implement it in the deparser.

Duncan



More information about the R-devel mailing list