Sobes.tech
Junior — Middle

Funktsional dasturlash tamoyillari va yondashuvlarining asoslarini tushuntirib berishingiz mumkinmi?

sobes.tech AI

AIdan javob

Funktsional dasturlash (FD) — bu dasturlash paradigmasi bo'lib, u funksiyalarni asosiy qurilish bloklari sifatida ishlatishga va holatni o'zgartirish hamda yon ta'sirlarni oldini olishga asoslangan.

FD ning asosiy tamoyillari va yondashuvlari:

  • Toza funksiyalar: funksiya har doim bir xil kirish ma'lumotlari uchun bir xil natija qaytaradi va tashqi holatni o'zgartirmaydi.
  • O'zgarmaslik (immutability): ma'lumotlar yaratildikten so'ng o'zgarmaydi, o'rniga, o'zgarishlar bilan yangi nusxalar yaratiladi.
  • Yuqori tartibdagi funksiyalar: boshqa funksiyalarni argument sifatida qabul qiladigan yoki ularni qaytaradigan funksiyalar.
  • Rekursiya o'rniga sikllar: operatsiyalarni takrorlash uchun ko'pincha rekursiya ishlatiladi.
  • Yon ta'sirlarning yo'qligi: funksiyalar tashqi o'zgaruvchilar, fayllar, ma'lumotlar bazalari va boshqalarni o'zgartirmasligi kerak.

C++ misoli (lambda funksiyalaridan foydalanib):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> sonlar = {1, 2, 3, 4, 5};
    
    // Yuqori tartibdagi funksiya: std::for_each ga lambda funksiyasini uzatish
    std::for_each(sonlar.begin(), sonlar.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Bu yerda biz asl vektorni o'zgartirmaymiz, faqat har bir elementga funksiya qo'llaymiz va uni chiqaramiz, bu esa funksional yondashuv g'oyalariga mos keladi.