Sobes.tech
Middle

Kas yra funkcionaliosios programavimo paradigmos?

sobes.tech AI

Atsakymas iš AI

Funkcinė programavimo paradigma — tai programinės įrangos kūrimo stilius, kurio pagrindinis principas yra funkcijų naudojimas kaip pagrindinių statybinių blokų. Ji pabrėžia:

  • Švarios funkcijos: funkcijos, kurios su tais pačiais įvesties duomenimis visada grąžina tą patį rezultatą ir neturi šalutinių poveikių (nekeičia išorės būsenos).
  • Duomenų nekintamumas: duomenys po sukūrimo negali būti keičiami. Bet koks pakeitimas sukuria naują duomenų kopiją.
  • Pirmosios klasės funkcijos: funkcijos gali būti perduodamos kaip argumentai, grąžinamos iš kitų funkcijų ir priskiriamos kintamiesiems.
  • Kintamos būsenos nebuvimas: programa siekia sumažinti arba visiškai pašalinti kintamųjų naudojimą.

Privalumai:

  • Pataiso ir testavimo paprastumas dėl šalutinių poveikių nebuvimo.
  • Pagerintas paralelizmas ir daugiaveikiškumas, nes nereikia užraktų dirbant su nekintamais duomenimis.
  • Skaityti ir prognozuojamas kodas.

Funkcinės galimybės Java įgyvendintos nuo Java 8 pasirodymo:

  • Lambda išraiškos:
  • Funkciniai interfeisai:
  • Stream API:
  • Metodų nuorodos:

Pavyzdys — Stream API naudojimas filtravimui ir transformavimui:

// Reikalingų klasių importas
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// Skaičių sąrašo pavyzdys
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Stream API naudojimas — filtravimas lyginių skaičių ir jų dvigubinimas
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Lyginių skaičių filtravimas
                                        .map(n -> n * 2)         // Dvigubinimas
                                        .collect(Collectors.toList()); // Naujas sąrašas

// Rezultato išvedimas
// System.out.println(processedNumbers); // Rezultatas: [4, 8, 12, 16, 20]