|
- Funktsional dasturlash. Rekursiya
|
bet | 30/30 | Sana | 27.01.2024 | Hajmi | 0,99 Mb. | | #146980 |
Bog'liq PARADIGMA YN40- Funktsional dasturlash. Rekursiya.
Funktsional dasturlash (Functional Programming-FP) - bu dasturlash paradigmasi bo'lib, hisoblashni matematik funktsiyalarni baholash sifatida ko'rib chiqadi va o'zgaruvchan holat va o'zgaruvchan ma'lumotlardan qochadi. Funktsional dasturlashning asosiy tamoyillari va xususiyatlari:
Sof funktsiyalar (Pure Functions):
Ta'rif: Sof funktsiyalar ikkita asosiy xususiyatga ega - ular har doim bir xil kirish uchun bir xil natijani ishlab chiqaradi va ular hech qanday nojo'ya ta'sirga ega emas.
Maqsad: Sof funksiyalar kodni bashorat qilish va mulohaza yuritishni osonlashtiradi. Ular kutilmagan oqibatlarning oldini olishga yordam beradi va sinov va disk raskadrovkani yanada soddalashtiradi.
O'zgarmaslik:
Ta'rif: Funktsional dasturlashda ma'lumotlar o'zgarmasdir, ya'ni u yaratilgandan keyin uni o'zgartirib bo'lmaydi. Ma'lumotlarni o'zgartirish uchun paydo bo'ladigan har qanday operatsiya aslida yangi nusxani yaratadi.
Maqsad: O'zgarmaslik kutilmagan nojo'ya ta'sirlar xavfini yo'q qiladi, parallellikni soddalashtiradi va kod sifatini yaxshilashga yordam beradi.
Birinchi darajali va yuqori darajali funktsiyalar:
Birinchi darajali funktsiyalar: Funktsiyalar birinchi darajali fuqarolar sifatida ko'rib chiqiladi, ya'ni ular o'zgaruvchilarga tayinlanishi, boshqa funktsiyalarga argument sifatida uzatilishi va qiymat sifatida qaytarilishi mumkin.
Yuqori tartibli funktsiyalar: Boshqa funktsiyalarni argument sifatida qabul qilishi yoki ularni natija sifatida qaytarishi mumkin bo'lgan funktsiyalar. Masalan, xarita, filtr va qisqartirish.
Yo'naltiruvchi shaffoflik:
Ta'rif: Ifoda dasturning harakatini o'zgartirmasdan uning qiymati bilan almashtirilishi mumkin bo'lsa, havolali shaffof hisoblanadi.
Maqsad: Yo'naltiruvchi shaffoflik kod haqida fikr yuritishni osonlashtiradi va optimallashtirish imkonini beradi. Bu sof funktsiyalar g'oyasi bilan chambarchas bog'liq.
Rekursiya:
Rekursiya - bu dasturlash usuli bo'lib, unda funktsiya muammoning kichikroq misolini hal qilish uchun o'zini chaqiradi. Funktsional dasturlashda ko'pincha tsikllar kabi an'anaviy iterativ tuzilmalar o'rniga rekursiya qo'llaniladi.
Ta'rif: Funktsional dasturlash ko'pincha rekursiyaga tayanadi, bu erda funktsiya asosiy holatga erishilgunga qadar muammoning kichikroq misollarini hal qilish uchun o'zini chaqiradi.
Maqsad: Rekursiya funktsional dasturlashning muayyan muammolari uchun tabiiy mos keladi va oqlangan, ifodali kodga olib kelishi mumkin. U ko'pincha looplar kabi an'anaviy iterativ konstruktsiyalarni almashtiradi.
Rekursiya kuchli va moslashuvchan usul bo'lib, to'g'ri qo'llanilganda, u qisqa va o'qilishi mumkin bo'lgan kodga olib kelishi mumkin. Bu funktsional dasturlashning asosiy tushunchasi bo'lib, ko'plab dasturlash tillarida, jumladan Lisp, Haskell va Scheme da keng qo'llaniladi.
Deklarativ uslub:
Ta'rif: Funktsional dasturlash qanday qilish kerakligidan ko'ra nima qilish kerakligini ta'kidlaydi. Bu deklarativ uslubni targ'ib qiladi, bunda asosiy e'tibor hisoblash mantig'ini ifodalashga qaratilgan.
Maqsad: Deklarativ kod ko'pincha imperativ kodga qaraganda qisqaroq, o'qilishi mumkin va tushunish osonroq.
Shakl mosligi:
Ta'rif: Shaklni moslashtirish - bu qiymatni naqshga nisbatan tekshirish va moslik asosida kodni shartli bajarish usuli.
Maqsad: Shaklni moslashtirish murakkab shartli bayonotlarni o'z ichiga olgan kodni soddalashtirishi mumkin. U ko'pincha ma'lumotlar tuzilmalarini buzish uchun ishlatiladi.
Funksiyanal dasturlashning shu kabi tamoyillari mavjud va shuningdek Rekursiya ham funksional dasturlashning bir tamoyili hisoblandi.
|
| |