Combinators are higher-order functions that use only function application and earlier defined combinators to define a result from its arguments, without reference to variables. They are foundational in functional programming and lambda calculus, serving as building blocks for constructing complex operations from simpler ones.