Middle
Funksional proqramlaşdırma nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Funksional proqramlaşdırma, funksiyaları əsas tikinti blokları kimi istifadə edən proqramlaşdırma paradigmasıdır. Əsas anlayışlar:
- Təmiz funksiyalar: Eyni giriş məlumatları ilə həmişə eyni nəticəni verən və yan təsiri olmayan funksiyalar (kənar vəziyyəti dəyişmir, giriş/çıxış etməz).
- Məlumatların dəyişməzliyi: Məlumatlar yaradıldıqdan sonra dəyişdirilə bilməz. Əvəzində, yeni məlumatlar yaradılır.
- Birinci dərəcəli funksiyalar: Funksiyalar arqument kimi ötürülə bilər, dəyişənlərə təyin oluna bilər, digər funksiyalardan geri qaytarıla bilər.
- Vəziyyətin olmaması: Proqramda dəyişdirilə bilən qlobal və ya ümumi vəziyyət yoxdur, funksiyaların icrasına təsir göstərmir.
- İzahçı üslub: "Nə" edilməli olduğunu təsvir edir, "necə" deyil (imperativ üslubdan fərqli olaraq, addımların ardıcıllığına diqqət yetirir).
Üstünlüklər:
- Təmiz funksiyalar sayəsində daha yaxşı test və səhv ayıklama.
- Paylaşılan dəyişkən vəziyyətlərin olmaması ilə paralel proqramlaşdırmanın sadələşdirilməsi.
- Daha proqnozlaşdırıla bilən kod.
- Artırılmış modullluq.
Çatışmazlıqlar:
- Problemləri həll etmək üçün fərqli yanaşma tələb oluna bilər, imperativ dillərdə təcrübəsi olan proqramçılar üçün qeyri-adi ola bilər.
- Bəzən məlumatların dəyişməzliyi səbəbindən çox sayda müvəqqəti obyektlərin yaradılmasına səbəb ola bilər.
- Dəyişdirilə bilən vəziyyət istifadə etmədən bəzi alqoritmlərin həyata keçirilməsi çətin ola bilər.
JavaScript-də tətbiq nümunələri:
Yüksək səviyyəli funksiyaların istifadəsi (map, filter, reduce):
// Massivi dəyişdirmək yerinə, map yeni birini yaradır
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2); // doubled = [2, 4, 6]
Təmiz funksiya:
// Bu funksiya, eyni giriş məlumatları üçün həmişə eyni nəticəni verir
// və xarici vəziyyəti dəyişmir
function add(a, b) {
return a + b;
}