[Rd] anonymous functions

Abby Spurdle @purd|e@@ @end|ng |rom gm@||@com
Mon Dec 7 23:56:45 CET 2020


I mostly agree with your comments on anonymous functions.

However, I think the main problem is cryptic-ness, rather than succinct-ness.
The backslash is a relatively universal symbol within programming
languages with C-like (ALGOL-like?) syntax.
Where it denotes escape sequences within strings.

Using the leading character for escape sequences, to define functions,
is like using integers to define floating point numbers:

    my.integer <- as.integer (2) * pi

Arguably, the motive is more to be ultra-succinct than cryptic.
But either way, we get syntax which is difficult to read, from a
mathematical and statistical perspective.


On Tue, Dec 8, 2020 at 6:04 AM Therneau, Terry M., Ph.D. via R-devel
<r-devel using r-project.org> wrote:
>
> “The shorthand form \(x) x + 1 is parsed as function(x) x + 1. It may be helpful in making
> code containing simple function expressions more readable.”
>
> Color me unimpressed.
> Over the decades I've seen several "who can write the shortest code" threads: in Fortran,
> in C, in Splus, ...   The same old idea that "short" is a synonym for either elegant,
> readable, or efficient is now being recylced in the tidyverse.   The truth is that "short"
> is actually an antonym for all of these things, at least for anyone else reading the code;
> or for the original coder 30-60 minutes after the "clever" lines were written.  Minimal
> use of the spacebar and/or the return key isn't usually held up as a goal, but creeps into
> many practiioner's code as well.
>
> People are excited by replacing "function(" with "\("?  Really?   Are people typing code
> with their thumbs?
> I am ambivalent about pipes: I think it is a great concept, but too many of my colleagues
> think that using pipes = no need for any comments.
>
> As time goes on, I find my goal is to make my code less compact and more readable.  Every
> bug fix or new feature in the survival package now adds more lines of comments or other
> documentation than lines of code.  If I have to puzzle out what a line does, what about
> the poor sod who inherits the maintainance?
>
>
> --
> Terry M Therneau, PhD
> Department of Health Science Research
> Mayo Clinic
> therneau using mayo.edu
>
> "TERR-ree THUR-noh"
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list