[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