Arrow functions in ES6 do not have an
Writing a recursive function without naming it is a problem that is as old as computer science itself (even older, actually, since λ-calculus predates computer science), since in λ-calculus all functions are anonymous, and yet you still need recursion.
The solution is to use a fixpoint combinator, usually the Y combinator. This looks something like this:
(y => y( givenFact => n => n < 2 ? 1 : n * givenFact(n-1) )(5) )(le => (f => f(f) )(f => le(x => (f(f))(x)) ) );
This will compute the factorial of