[Rd] anonymous functions

David Hugh-Jones d@v|dhughjone@ @end|ng |rom gm@||@com
Tue Dec 8 04:23:54 CET 2020


I will stick my oar in here as a user to say that I find the \(x) syntax a bit line-noise-ish. 

David

> On 8 Dec 2020, at 00:05, Abby Spurdle <spurdle.a using gmail.com> wrote:
> 
> Sorry, I should replace "cryptic-ness" from my last post, with
> "unnecessary cryptic-ness".
> Sometimes short symbolic expressions are necessary.
> 
> 
> P.S.
> Often, I wish I could write: f (x) = x^2.
> But that's replacement function syntax.
> 
> 
>> On Tue, Dec 8, 2020 at 11:56 AM Abby Spurdle <spurdle.a using gmail.com> wrote:
>> 
>> 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
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list