Sobes.tech
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;
}