You may have heard the term before—you may even know what it is already. If you want a really technical description of the Y-combinator, look no further than Wikipedia (though we can certainly do better). However, this will leave most of us laymen more confused than we were going in. So what is the Y-combinator, really?
Getting right to it, written in ES6 this would look like the following (courtesy Brendan Eich):
let Y = f => (x => f(v => x(x)(v)))(x => f(v => x(x)(v)))