Sobes.tech
Middle

Funksional proqramlaşdırma nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Funksional proqramlaşdırma, hesablamaların riyazi funksiyaların qiymətləndirilməsi kimi nəzərdən keçirildiyi və dəyişkən vəziyyət və dəyişkən məlumatlardan qaçınılan proqramlaşdırma paradigmasıdır.

Əsas prinsiplər:

  • 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, xarici dəyişənləri dəyişdirmək, giriş/çıxış).
  • Dəyişməzlik: Məlumatlar yaradıldıqdan sonra dəyişmir. Hər "dəyişiklik" yeni nüsxə yaradır.
  • Funksiyalar birinci dərəcəli obyektlər kimi: Funksiyalar arqument kimi ötürülə bilər, digər funksiyalardan geri qaytarıla bilər və dəyişənlərə təyin oluna bilər.
  • İstinad şəffaflığı: Bir ifadə onun dəyəri ilə əvəz oluna bilər və proqramın davranışını dəyişmir. Bu, birbaşa təmiz funksiyalarla əlaqəlidir.

Üstünlüklər:

  • Əvvəlcədən proqnozlaşdırıla bilənlik: Yan təsirlərin olmaması səbəbindən test və səhv ayıklama daha asandır.
  • Paralelləşdirmə: Paylaşılan dəyişkən vəziyyətin olmaması səbəbindən kodu paralel icra etmək daha asandır.
  • Dəstək: Kod daha modulyar və anlaşılandır.

JavaScript-də nümunə:

// Pis funksiya (xarici vəziyyəti dəyişir)
let total = 0;
function addToTotal(value) {
  total += value;
  return total;
}

// Təmiz funksiya (xarici vəziyyəti dəyişmir, yeni dəyər qaytarır)
function add(a, b) {
  return a + b;
}

// Funksiyaları birinci dərəcəli obyektlər kimi istifadə etmək (funksiya arqumenti kimi)
function processArray(arr, handler) {
  return arr.map(handler);
}

const numbers = [1, 2, 3];
const doubledNumbers = processArray(numbers, x => x * 2);

JavaScript sərt funksional dil olmasa da, onun imkanları (məsələn, təmiz funksiyalar, map, filter, reduce array metodları) funksional proqramlaşdırma prinsiplərini tətbiq etməyə imkan verir. Frontend inkişafında FP tez-tez kitabxanalar və freymvorklarda (məsələn, Redux, React hooks ilə) istifadə olunur.