Hacker News new | ask | show | jobs
by goto11 1772 days ago
It is a typical language-comparison strawman. He is writing

   list.reduce((x,y)=>Math.max(x,y)) 
To get the max number in a list. And he is "winching" because he can't write:

    list.reduce(Math.max)
Because the variable arity of max does not play well with reduce. But because of the variable arity he can write:

    Math.max(...list)
Which is even simpler.

So he deliberately writes overly complex JavaScript code to show how the other language is more concise.

1 comments

IIRC the spread syntax only works with relatively small arrays, because it's function application at the end of the day.

So worthwhile keeping in mind that the nice JS code falls apart.

Fair point. In any case, if you wanted to do more than trivial array processing in JS, you would use a library like lodash which have an array max function.

And if you think lodash is still to verbose, you can define your own:

  const å = list => list.reduce((x,y) => Math.max(x, y));
Now you can write å(list) to get the max value of an array!
well yeah I could also write a function in C that does that. I don't think that's the point.