Combinatory Logic

Combinatory logic is "a theory for the foundation of mathematics... its goal was ... to establish fundamental mathematical concepts on simpler and cleaner principles than the existing mathematical frameworks... Its 'lack of (bound) variables' relates combinatory logic to the pointfree style of programming." — HaskellWiki¹

The best programming languages for programming with combinators are array languages like BQN, J and APL. Ken Iverson first introduced the S and Φ combinators as the "hook" and "fork" in the J language in the early 1990s. Dyalog APL would then later add combinators in Dyalog 14.0 in 2014. Newer array languages like BQN have the strongest support for combinator programming. More details of combinators as they exist in array languages can be found here.

If you are interested in learning more, a great starting point are the talks below.

Composition Intuition (2023)

An introduction to combinatory logic and functional composition presented at CppNorth 2023.

Composition Intuition - CppNorth 2023

Composition Intuition II (2024)

Building on the foundations, this follow-up talk dives deeper into advanced combinatory concepts.

Composition Intuition II - CppNorth 2024

"A language that doesn't affect the way you think about programming is not worth knowing."

— Alan Perlis