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.