Sobes.tech
Middle

Co je to funkční programovací paradigma?

sobes.tech AI

Odpověď od AI

Funkcionální paradigma programování je styl výstavby softwaru, jehož hlavním principem je používání funkcí jako základních stavebních bloků. Zdůrazňuje:

  • Čisté funkce: Funkce, které při stejných vstupních datech vždy vracejí stejný výsledek a nemají vedlejší účinky (nemění stav mimo sebe).
  • Nezměnitelnost dat: Data po vytvoření nelze změnit. Jakákoli změna vytvoří novou kopii dat.
  • Funkce první třídy: Funkce mohou být předávány jako argumenty, vraceny z jiných funkcí a přiřazovány proměnným.
  • Absence měnitelného stavu: Program se snaží minimalizovat nebo úplně eliminovat použití měnitelných proměnných.

Výhody:

  • Zjednodušení ladění a testování díky absenci vedlejších účinků.
  • Zlepšení paralelismu a vícejádrového zpracování, protože není potřeba zámek při práci s neměnnými daty.
  • Čitelnější a předvídatelnější kód.

V jazyce Java byly funkcionální možnosti realizovány s příchodem Java 8 prostřednictvím:

  • Lambda výrazů.
  • Funkcionálních rozhraní.
  • Stream API.
  • Odkazů na metody.

Příklad použití Stream API pro filtrování a transformaci:

// Import potřebných tříd
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// Příklad seznamu čísel
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Použití Stream API pro filtrování sudých čísel a jejich násobení 2
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Filtrování sudých čísel
                                        .map(n -> n * 2)         // Násobení 2
                                        .collect(Collectors.toList()); // Sbírání do nové seznamu

// Výpis výsledku
// System.out.println(processedNumbers); // Ukáže: [4, 8, 12, 16, 20]