Sobes.tech
Junior

Funksional proqramlaşdırma nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Funksional proqramlaşdırma, əsas tikinti blokları kimi funksiyaların istifadəsinə əsaslanan 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əsirləri olmayan funksiyalar (məsələn, qlobal dəyişənləri dəyişdirmək, konsola çıxış etmək və s.).
  • Məlumatların dəyişməzliyi: məlumatlar yaradıldıqdan sonra dəyişdirilə bilməz. Əvəzində, yeni bir nüsxə yaradılır.
  • Birinci dərəcəli funksiyalar: funksiyalar dəyişənlərə təyin oluna bilər, digər funksiyalara arqument kimi ötürülə bilər və digər funksiyalardan nəticə kimi qaytarıla bilər.
  • Yüksək səviyyəli funksiyalar: digər funksiyaları arqument kimi qəbul edən və ya qaytaran funksiyalar.
  • İmperativ vs. Deklarativ: Funksional proqramlaşdırma daha çox deklarativdir, edilməli olduğunu təsvir edir, necə deyil.

Üstünlüklər:

  • Yaxşı test ediləbilərlik: Təmiz funksiyalar test etmək asandır, çünki onların çıxışı yalnız giriş məlumatlarına bağlıdır.
  • Paralel işləmənin sadələşdirilməsi: Məlumatların dəyişməzliyi, eyni zamanda giriş və yarış şəraitlərinin problemlərini aradan qaldırır.
  • Kodun proqnozlaşdırılması: Təmiz funksiyalar proqramın davranışını daha proqnozlaşdırıla bilər edir.
  • Daha yaxşı oxunaqlıq: Kod daha modul və anlaşılandır.

JavaScript-də istifadə nümunəsi:

// İmperativ yanaşma
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = [];

for (let i = 0; i < numbers.length; i++) {
  doubledNumbers.push(numbers[i] * 2);
}

// Funksional yanaşma (təmiz funksiya və yüksək səviyyəli funksiya map istifadə edilərək)
const double = (n) => n * 2; // Təmiz funksiya

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(double); // map istifadə - yüksək səviyyəli funksiya

Çox vaxt React, Redux və RxJS kimi kitabxanalar/frameworklərlə birlikdə reaktiv yanaşmalarda istifadə olunur.