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]