Sobes.tech
Middle

Čo je to funkčná paradigmatika programovania?

sobes.tech AI

Odpoveď od AI

Funkcionálna paradigma programovania je štýl výstavby softvéru, ktorého hlavnou zásadou je používanie funkcií ako základných stavebných blokov. Zdôrazňuje:

  • Čisté funkcie: Funkcie, ktoré pri rovnakých vstupných dátach vždy vracajú rovnaký výsledok a nemajú vedľajšie účinky (nemenia stav mimo seba).
  • Nezmeniteľnosť dát: Dáta po ich vytvorení nemôžu byť zmenené. Akákoľvek zmena vytvára novú kópiu dát.
  • Funkcie prvej triedy: Funkcie môžu byť odovzdávané ako argumenty, vracané z iných funkcií a priraďované premenným.
  • Absencia meniteľného stavu: Program sa snaží minimalizovať alebo úplne eliminovať použitie meniteľných premenných.

Výhody:

  • Uľahčuje ladenie a testovanie kvôli absencii vedľajších účinkov.
  • Zlepšuje paralelizmus a multithreading, pretože nie je potrebné zamykanie pri práci s nezmeniteľnými dátami.
  • Čitateľnejší a predvídateľnejší kód.

V Jave boli funkcionálne možnosti implementované s príchodom Java 8 prostredníctvom:

  • Lambda výrazov.
  • Funkcionálnych rozhraní.
  • Stream API.
  • Referencií na metódy.

Príklad použitia Stream API na filtrovanie a transformáciu:

// Importovanie potrebných tried
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

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

// Použitie Stream API na filtrovanie párnych čísel a ich násobenie 2
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Filtrovanie párnych čísel
                                        .map(n -> n * 2)         // Násobenie 2
                                        .collect(Collectors.toList()); // Zhromažďovanie do novej zoznamu

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