9. Funksional dasturlash. Yuqori tartibli funksiyalar. Toza funksiyalar. Rekursiya

9. Funksional dasturlash. Yuqori tartibli funksiyalar. Toza funksiyalar. Rekursiya.
•Funksional dasturlash dasturlash paradigmasi bo'lib, unda hisoblash jarayoni funktsiyalarning qiymatlarini matematik ma'noda hisoblanadi.
Funksional dasturlashning eng muhim vazifasi kodni aniqlikda bajarish. Ushbu turdagi dasturlash mashinali o’qitish va ma'lumotlarni tahlil qilish uchun ko’proq foydalaniladi.
•Funksional dasturlashni paradigma va algoritmlarni yaratish uslublari quyida keltirilgan:
Funksiya yoki aniqlangan kod bloki. Bu funksional dasturlashning asosi hisoblanadi. Funksiya - bu bir yoki bir nechta tushunchalardan iborat kod blokidir. Funksional tillarda har bir buyuruq funksiyaga aylanadi. Butun algoritm ularning tavsifi va kirituvchilaridan iborat hamda barcha dasturlar alohida kichik bloklardan iborat bo’ladi. Katta bloklar ko'plab kichik bloklardan tashkil topadi.
Yuqori tartibli funksiyalar.
Dasturlashda boshqa funksiyalarni argument sifatida qabul qiladigan yoki natijada boshqa funksiyani qaytaradigan funksiyadir. Asosiy g'oya shundaki, funktsiyalar boshqa ma'lumotlar ob'ektlari bilan bir xil maqomga ega. Yuqori tartibli funksiyalardan foydalanish, ular bajaradigan hisob-kitoblarning murakkabligini hisobga olgan holda, mavhum va ixcham bo'lgan dasturlarda qo'llaniladi.
• Yuqori tartibli funksiyalar boshqa funktsiyalarni boshqaradigan funktsiyalar hisoblanadi. Ularning argumentlari anonim va sof funktsiyalar hisoblanadi shuningdek, asosiy funksiyani bajargandan so'ng, natija sifatida qaytarilishi mumkin.
Toza funksiyalar :
Faqat o'z kontekstini boshqaradigan va butun dasturning global kontekstiga (holatiga) ta'sir qilmaydigan kod blok hisoblanadi.
Toza funkisyalar:
1) matematik funksiyalar kabi nojo'ya ta'sirlarga ega emas
2) Funktsiya chaqiruvining natijasi kirish argumentlari bilan aniqlanadi
3) bir xil argument uchun bir xil natija qaytariladi
Rekursiya
•Funktsional tillarda rekursiya sikllar o‘rnini bosuvchi vazifasini bajaradi. Bu o'z kontekstida o'ziga funksiya chaqiruvidir. Bunday chaqiruvlar nazorat sharti rost bo'lgunga qadar takrorlanadi.
11. Mantiqiy dasturlash. Mantiqiy dasturlash tillari. Predikatlar
Mantiqiy dasturlash, axborotlarni tahlil qilish, shart-sharoitlarga qarab ma'lumotlarni tekshirish, va/ya to'g'risida ma'lumotlar chiqarish bilan shug'ullanadi. Mantiqiy dasturlash tillari mantiqy amaliyotlarni avtomatlashtirish uchun ishlatiladi. Bu tillar arasida yuqoridagi vazifalarni bajarishga imkon beradigan predikatlar ham mavjud.
Mantiqiy dasturlash tillari
1. Prolog: Mantiqiy dasturlashning so'nggi yillarida eng mashhur tillaridan biri hisoblanadi.
2. LISP (List Processing): Prolog bilan birga, LISP mantiqiy dasturlashning klassik tillaridan biri hisoblanadi.
3. SQL (Structured Query Language): Ma'lumotlar bazalariga bog'liq so'rovlar yozishda ishlatiladi.
4. MATLAB: Mantiqiy dasturlashingda xilma-xil matematik modellar yaratish, solishtirish, tajribalar o'tkazish, grafikalar chizish uchun ishlatiladi.
Bu, faqat bir qancha mantiqiy dasturlash tillaridan faqat bir nechtasini ko'rsatadi. Mantiqiy dasturlashda ko'plab boshqa tillar, masalan C++, Python va Java, ham keng qo'llaniladi.
Predikatlar, matematikda va informatika sohasida bir xil hususiyatlar ta'rifi hisoblanadi. Predikatlar shartli ifodalar hisoblanadi va umumiy ravishda, haqiqatlar almashish va tekshirishda foydalaniladi. Funksiyalardan farqli ravishda, predikatlar haqiqatni bildiradi.
Predikat biror birlikni ifodalaydi, ya'ni biror misolda "x katta yoki teng 5" deb ifodalaymiz, bu "x >= 5" deb ifodalaydi. Ayni vaqtda biz "x kichkina 10" ifodasini "x < 10" deb ifodalaymiz.
Predikatlar oddiy mantiqiy dagi funksiyalar bilan ham ishlatilishi mumkin. Oddiy funksiya qiymatlarni qabul qilib, uni qaytaradi. Predikat esa haqiqat yoki yolg'on qiymatni chiqaradi.
Predikatlar, mantiqiy dasturlashning asosiy qismidir va shartli ifodalarni aniq va mantiqiy tarzda ifodalashda o'rnini tutadi.
12. Deklorativ dasturlash
Deklarativ dasturlash
hal qilishning spetsifikatsiyasi o'rnatiladigan dasturiy paradigma, ya'ni muammo nima ekanligini va kutilgan natijani tavsiflaydi. Deklarativ dasturlashning teskari tomoni - bu majburiy dasturlash bo'lib, u qandaydir tafsilotlarda muammoni qanday hal qilish va natijani taqdim etishni tavsiflaydi. Natijada, deklarativ dasturlarda davlat tushunchasi ishlatilmaydi xususan ular o’zgaruvchilar va tayinlash operatorlarini o'z ichiga olmaydi va ma'lumotlarning shaffofligi ta'minlanadi.
Strukturaviy dasturlash
Dasturning ierarxik blok tuzilishi shaklida taqdimotiga asoslangan dasturlash paradigmasi.
quyidagilar bilan tavsiflanadi:
- shartli va shartsiz sakrashlardan cheklangan foydalanish
- pastki dasturlardan va boshqa boshqaruv tuzilmalaridan (ilmoqlar, filiallar va boshqalar)keng foydalanish
-blok tuzilishi
Funktsional dasturlash
Asosiy tushunchalar:
- noaniq yon tasirning yetishmasligi
-ma’lumotlarning shaffofligi
- yashirin holat yo'q
- ma'lumotlar va funktsiyalar kontseptual jihatdan bir xil
Mantiqiy dasturlash
— berilgan faktlar va xulosalar qoidalari asosida xulosa chiqarish mexanizmlaridan foydalangan holda avtomatik teoremani isbotlashga asoslangan dasturiy paradigma.
Obyektga yo’naltirilgan dasturlash
(OYD) — dasturni har biri ma'lum bir sinfning namunasi bo'lgan ob'ektlar to'plami sifatida namoyish etishga asoslangan dasturlash metodologiyasi va sinflar meros ierxiyasini tashkil etish.
|