In general, you can do this via `arguments.length`, and if/once the pattern matching proposal [1] hits stage 4, you could do this to emulate it very closely:
```js function foo(...args) { case (args) { when [] -> { /* zero args*/ }, when [x] -> { /* one arg */ }, // and so on... } } ``` In general, that proposal would most interest you. [1]: https://github.com/tc39/proposal-pattern-matching On Wed, Oct 17, 2018 at 01:24 bishwendu kundu <bishwenduk...@gmail.com> wrote: > Hello All, > > I have been a great fan of the evolution of JavaScript in the recent past. > The language is steadily closing the gap to ideal functional paradigm. One > of the things that I have liked the most about languages like > Erlang/Elixir/Haskell is their ability to define functions with same name > and different airty. The decision of invoking the correct function-argument > pattern is dependent on the invocation of the function. Implicit pattern > matching in aforementioned languages helps avoid costly cognitive loads > introduced by explicit if/else based pattern of logic flow branching. > > The greatest power of the pattern matching which amazed me was, dropping > the whole of looping construct, altogether. Elixir/Erlang have no LOOPS. > Stack based recursive calls combined with JavaScript's closures suddenly > strikes me as a very powerful programming model that not only increases > readability of code but also promotes immutability of the data structures > in use. The loops would continue to exist but more modern codes can be > written leveraging the recursive model of JavaScript. > > With de-structuring of arrays & objects already in place in JavaScript, > pattern-matching of functions can fit right in perfectly, thereby taking > JavaScript another step closer to ideal functional programming model. > > Looking forward to your response. > > Thanks & Regards, > Bishwendu. > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss