agar-bo'lmasa-boshqa,->
O'rnatilgan infiks predikati … -> … ; …if … keyin … boshqa … ob'ekt sifatida ishlaydi. Misol:
min(A, B, Min) :- A < B -> Min = A ; Min = B.
Ushbu versiyada min(quyida bo'lgani kabi, bu raqamlarni nazarda tutadi A) B"agar A < Bu holda birlashtirilsa Min, Aaks holda birlashtiring Min" Bdeyiladi. Ehtimol, ikki qoidali versiyasini tushunish osonroqdir min:
min(A, B, A) :- A <= B.
min(A, B, B) :- B < A.
Ya'ni, minimal Ava Bagar ; minimal - agar . Biroq, ta'rifi ishlashini ko'rsatadiAA <= BBB < A->min->.
Kod illyustratsiyasida protsessual-dasturiy tuyg'u bor, bu Prologning boshlang'ich foydalanuvchilariga qulaylik tug'dirishi mumkin. Ehtimol, ular faqat shu sababdan qochishlari kerak! Hech bo'lmaganda, uni ishlatishning yagona sababi protsessual tuyg'u bo'lsa, uni ishlatishdan qochish kerak. Agar foydalanish ->kod uzunligini sezilarli darajada qisqartirsa va shu bilan uni soddalashtirsa, bu uni ishlatish uchun argument bo'lishi mumkin.
ning batafsil semantikasi … -> … ; …nisbatan murakkab. Quyidagi tavsif SWI Prolog yordam matnidan keltirilgan ->:
Konstruksiya ->/2 oʻzining chap tomonida qilingan tanlovlarni oʻz zimmasiga oladi, bu bandda (tomonidan ;/2) yoki ushbu band tomonidan chaqirilgan maqsadlar orqali yaratilgan tanlash nuqtalarini yoʻq qiladi. dan farqli o'laroq !/0, bir butun sifatida predikatning tanlash nuqtasi (bir nechta bo'laklar tufayli) buzilmaydi. Kombinatsiya ;/2 va ->/2 xuddi shunday ta'sir qiladi:
If -> Keyin ; _Else:- Agar, !, keyin.
Agar -> _U holda ; Aks holda:- !, Boshqa.
If -> Keyin:- Agar, !, Keyin.
Iltimos, esda tutingki, (If -> Then)shart (If -> Then ; fail)bajarilmasa, konstruksiya ishlamay qoladi. Ushbu noodatiy semantika ISO va barcha de-fakto Prolog standartlarining bir qismidir.
Ushbu ta'rifdagi qisqartirishlar tufayli va ta'siri ->kutilmagan … -> … ; …bo'lishi mumkin. Boshlang'ich Prolog dasturchilari undan kesish kabi ehtiyotkorlik bilan foydalanishlari kerak. If-then-else konstruksiyali dasturlash tilini allaqachon bilgan dasturchilar (masalan, C, C++, Java, ...) kashfiyotga … -> … ; …ozgina quvonch va yengillik bilan javob berishadi va har qanday imkoniyatdan foydalanishadi. Xavfsizroq reaktsiya "agar siz semantikani to'liq tushunmasangiz, undan foydalanmang".
UNSWdagi COMP9414 va COMP9814 talabalariga uni kesish taqiqlangan har qanday vaziyatda ishlatish taqiqlanadi, birinchi navbatda, iloji bo'lsa, ularsiz (va qisqartirishlarsiz) qanday boshqarishni o'rganishingizni xohlaymiz
Do'stlaringiz bilan baham: |