1-misol
- Fakt: Rubi mushuk.
- Qoida: barcha mushuklarning tishlari bor.
- Maslahat: Rubining tishlari bormi?
- Xulosa: ha.
"Barcha mushuklarning tishlari bor" qoidasini Rubiga nisbatan qo'llash mumkin, chunki "Rubi - mushuk" degan haqiqat bor. Ushbu misol haqiqiy dasturlash tili uchun hech qanday sintaksis bilan yozilmagan.
2-misol
Ushbu misolni Prologda yozilgan holda ko'rish mumkin, chunki u eng mashhur mantiqiy dasturlash tillaridan biri hisoblanadi:
- ayol (alissa).
- erkak (bobbi).
- erkaklar (karlos).
- ayol (doris).
- son_of (doris, karlos).
- son_of (karlos, bobbi).
- son_of (doris, alissa).
- otasi (F, P): - erkak (F), o'g'li (P, F).
Ushbu dasturni o'qish qiyinlashadi, chunki Prolog boshqa tillardan farq qiladi. "Ayol (alissa)" ga o'xshash har qanday kod komponenti. bu haqiqat.
Bitta qoida - "father_of (F, P): - erkak (F), son_of (P, F)". ": -" belgisini "agar rost bo'lsa" deb o'qish mumkin. Katta harflar o'zgaruvchilarni har qanday ob'ektga qo'llash mumkinligini anglatadi, shuning uchun F karlos, doris, alissa yoki bobbi uchun ishlatilishi mumkin. Ushbu kodni quyidagicha tarjima qilish mumkin:
- Alissa ayol.
- Bobbi erkak.
- Karlos erkak.
- Doris ayol.
- Doris Karlosning qizi.
- Karlos Bobbining o'g'li.
- Doris - Alissaning qizi.
- "F - P ning otasi", agar F erkak bo'lsa va P F ning o'g'li bo'lsa, haqiqatdir.
So'rov
Qo'shimcha ma'lumot olish uchun dastur bilan maslahatlashishni xohlaysizmi deylik. Bobbi kimning otasi ekanligini topish uchun qidirib topishingiz mumkin :? - father_of (bobby, X). Tizim quyidagi javobni ko'rsatib beradi: X = Karlos.
Bunday holda, uning qiymatlaridan biri o'zgaruvchan bo'lgan munosabatlar o'tkaziladi. Prolog nima qilgan bo'lsa, ulardan biri mantiqiy qat'iy bo'lgunga qadar ushbu munosabatlarga turli xil moslamalarni qo'llagan.
Karlosning yagona otasi Bobbi, Bobbi esa erkak. Bu "father_of (F, P): - erkaklar (F), son_of (P, F)" qoidasini qondirdi. X "karlos" ga teng bo'lsa, mantiq ovozli bo'ladi.
Do'stlaringiz bilan baham: |