Sobes.tech
Middle

Mis on funktsionaalne programmeerimisparadigma?

sobes.tech AI

Vastus AI-lt

Funktsionaalne programmeerimisparadigma — see on tarkvaraarenduse stiil, mille peamine põhimõte on funktsioonide kasutamine kui põhiehituskivid. See rõhutab:

  • Terved funktsioonid: funktsioonid, mis sama sisendiga alati tagastavad sama tulemuse ning millel ei ole kõrvaltoimeid (ei muuda välisolekut).
  • Andmete muutmatus: andmed pärast loomist ei saa muuta. Iga muudatus loob uue koopiandmed.
  • Esimese klassi funktsioonid: funktsioone saab edasi anda argumentidena, tagastada teistest funktsioonidest ning omistada muutujatele.
  • Muutumatu oleku puudumine: programm püüab minimeerida või täielikult välistada muutuvate muutujate kasutamist.

Eelised:

  • Vähendab vigu ja lihtsustab testimist — kõrvaltoimete puudumise tõttu.
  • Parandab paralleelsust ja mitmetöötlust, kuna ei ole vaja lukke muutumatute andmete töötlemisel.
  • Kergem lugeda ja ennustada koodi.

Funktsionaalsete võimaluste rakendamine Java-s alates Java 8-st:

  • Lambda väljendid:
  • Funktsionaalsed liidesed:
  • Stream API:
  • Meetodite viited:

Näide — Stream API kasutamine filtrimiseks ja teisendamiseks:

// Vajalikud klasside import
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// Numbriliste andmete näide
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Stream API kasutamine — paarisarvude filtreerimine ja nende kahekordistamine
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Paarisarvude filter
                                        .map(n -> n * 2)         // Kahekordistamine
                                        .collect(Collectors.toList()); // Uus nimekiri

// Tulemuse väljastamine
// System.out.println(processedNumbers); // Tulemuseks: [4, 8, 12, 16, 20]