Kesish (mantiqiy dasturlash) - Cut (logic programming) - Wikipedia

The kesilgan, yilda Prolog, a maqsad,! deb yozilgan, bu har doim muvaffaqiyatli bo'ladi, lekin orqaga qaytish mumkin emas. Kiruvchi narsalarni oldini olish uchun eng yaxshisi orqaga qaytish, shu jumladan Prolog tomonidan qo'shimcha echimlarni topish va keraksiz hisoblashlardan saqlanish.

Kesilgan joydan ozgina foydalanish kerak. Xatolarni o'z ichiga olgan kodlarga qisqartirishlarni kiritish mumkin, agar test kerak emas, chunki kesish haqiqat ekanligiga kafolat bergan bo'lsa, buni tegishli joyda izohda aytish yaxshi bo'ladi.[1]

Ba'zi dasturchilar kesishni munozarali boshqaruv vositasi deb atashadi [2] chunki u faqat samaradorlik sababli qo'shilgan va emas Shox moddasi.

Turlari

Yashil kesilgan

Faqat samaradorlikni oshiradigan kesimdan foydalanish yashil kesma deb nomlanadi. Yashil kesmalar dasturlarning samaradorligini oshirish uchun dastur natijalarini o'zgartirmasdan ishlatiladi. Masalan:

 qimor o'ynash(X) :- pul(X),!. qimor o'ynash(X) :- kredit(X), \+ pul(X).

Bunga a deyiladi yashil kesuvchi operator. The! tarjimonga muqobil izlashni to'xtatish kerakligini aytadi; ammo, agar pul (X) bajarilmasa, u ikkinchi qoidani tekshiradi. Garchi tekshirilayotgan bo'lsa ham pul (X) ikkinchi qoidada ortiqcha ko'rinishi mumkin, chunki Prologning ko'rinishi bog'liqdir pul (X) oldin muvaffaqiyatsizlikka uchradi, aks holda ikkinchi qoida birinchi navbatda baholanmaydi. Qo'shilmoqda + gotmoney (X) birinchi qoida tasodifan olib tashlangan yoki o'zgartirilgan yoki ikkinchisidan keyin ko'chirilgan bo'lsa ham, ikkinchi qoida doimo ishlashiga kafolat beradi.

Qizil kesilgan

A bo'lmagan kesma yashil kesilgan a deb nomlanadi qizil kesilgan, masalan:

 qimor o'ynash(X) :- pul(X),!. qimor o'ynash(X) :- kredit(X).

Ularning mantiqiy ma'nosini aniqlash uchun kesilgan operatorni to'g'ri joylashishi va qoidalar tartibi talab qilinadi. Agar biron sababga ko'ra birinchi qoida olib tashlansa (masalan, a kesilgan va yopishtirilgan baxtsiz hodisa) yoki ikkinchisidan keyin ko'chirilgan bo'lsa, ikkinchi qoida buziladi, ya'ni bu qoidaga kafolat bermaydi + gotmoney (X).

Adabiyotlar

  1. ^ Dikxof, Roy (1994-05-20). Mantiqiy dasturlashning kengaytmalari: 4-Xalqaro seminar, ELP '93, Sent-Endryus, Buyuk Britaniya, 1993 yil 29 mart - 1 aprel. Ish yuritish. Springer Science & Business Media. ISBN  978-3-540-58025-6.
  2. ^ Mantiqiy dasturlash asoslari, Springer (2012).