Programy jsou funkce a data. Správné oddělení funkcí a dat je důležité pro efektivní a čitelný kód. Funkcemi organizujeme kód.
Funkce existují proto, aby upravovaly vstupní data na požadovaná výstupní data. Také jsou vhodné pro znovupoužití kódu.
Tímto paradigmatem vytváříte programy komponováním funkcí a vyhýbáte se sdíleným stavovům a mutacím.