Middle
Funksional proqramlaşdırma paradigması nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Funksional proqramlaşdırma paradigması, proqram təminatının qurulması üçün əsas prinsipi funksiyaların əsas tikinti blokları kimi istifadə edilməsinə əsaslanan bir tərzdədir. Bu, aşağıdakıları vurğulayır:
- Təmiz funksiyalar: Eyni giriş məlumatları ilə həmişə eyni nəticəni verən və yan təsirləri olmayan funksiyalar (kənar vəziyyəti dəyişmir).
- Məlumatların dəyişməzliyi: Məlumatlar yaradıldıqdan sonra dəyişdirilə bilməz. Hər hansı bir dəyişiklik yeni nüsxə yaradır.
- Birinci sinif funksiyalar: Funksiyalar arqument kimi ötürülə bilər, digər funksiyalardan geri qaytarıla və dəyişənlərə təyin oluna bilər.
- Dəyişdirilə bilən vəziyyətin olmaması: Proqram, dəyişdirilə bilən dəyişənlərin istifadəsini minimallaşdırmağa və ya tamamilə aradan qaldırmağa çalışır.
Üstünlüklər:
- Yan təsirlərin olmaması səbəbi ilə ayıklama və testlərin sadələşdirilməsi.
- Dəyişməz məlumatlarla işləyərkən kilidləməyə ehtiyac olmadan paralelliyi və çox ipli işləməni yaxşılaşdırır.
- Daha oxunaqlı və əvvəlcədən proqnozlaşdırıla bilən kod.
Java-da funksional imkanlar, Java 8-in ortaya çıxması ilə aşağıdakı vasitələrlə həyata keçirilmişdir:
- Lambda ifadələri.
- Funksional interfeyslər.
- Stream API.
- Metodlara istinadlar.
Stream API istifadə nümunəsi, filtrləmə və çevirmə:
// Lazımi sinflərin idxalı
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
// Nümunə sayıların siyahısı
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// Stream API istifadə edərək cüt ədədləri filtrləmək və 2 ilə vurmaq
List<Integer> processedNumbers = numbers.stream()
.filter(n -> n % 2 == 0) // Cüt ədədləri filtrləmək
.map(n -> n * 2) // 2 ilə vurmaq
.collect(Collectors.toList()); // Yeni siyahıya yığmaq
// Nəticəni göstərmək
// System.out.println(processedNumbers); // Çıxış: [4, 8, 12, 16, 20]