МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
||||||||||
Довжина спискуМожна, використовуючи рекурсивний виклик, легко порахувати довжину списку: length([], 0). length([X|L], N):-length(L, M), N is M+1. ?-length([a, b, c], N). N=3 4.3 Вбудовані предикати Дотепер ми одержували відповіді у формі пропонованій прологом: друкувалися значення змінних присутніх у питанні; питання цілком записувалися після запиту "?-". Однак можна задавати питання й одержувати відповіді в довільній формі. Для цього досить використовувати т.зв. вбудовані предикати. Вбудовані предикати - предикати початково визначені в пролозі, для яких не існує процедур у базі даних. Коли інтерпретатор зустрічає мету, що порівнюється з вбудованим предикатом, він викликає вбудовану процедуру. Вбудовані предикати звичайно виконують функції не зв'язані з логічним висновком. При зіставленні строєні предикати звичайно дають побічний ефект, що не усувається при бектрекінгу. 4.3.1 Прості вбудовані предикати виводу-введу. Вбудовані предикати забезпечують можливості вводу-виводу інформації: write/1 - цей предикат завжди успішний. Коли викликається, то побічним ефектом буде виведення значення аргументу на екран. При бектрекінгу предикат дає невдачу. Бектрекінг не скидає побічний ефект. nl/0 - цей предикат завжди успішний. Коли викликається, то побічним ефектом буде переведення на наступний рядок. При бектрекінгу предикат дає невдачу. Бектрекінг не скидає побічний ефект. tab/1 - цей предикат завжди успішний. Коли викликається, то побічним ефектом буде друк кількості пробілів задане аргументом. Аргумент повинний бути цілим. При бектрекінгу предикат дає невдачу. Бектрекінг не скидає побічний ефект. read/1 - цей предикат читає терм , що вводиться з клавіатури і закінчується крапкою. Цей терм співставляеться з аргументом. При бектрекінгу предикат дає невдачу. Бектрекінг не скидає побічний ефект. Наприклад, pr1:- read(X),nl,write('X='),tab(2),write(X). При виклику ?-pr1. послідовність термів читає значення X, переводить рядок, друкує 'X=', пропускає два пробіли і друкує значення X. 4.3.2 Процедурний зміст вбудованих предикатів вводу-введення. Визначаючи вбудовані предикати ми писали: "цей предикат завжди успішний. Коли викликається, то побічним ефектом буде... При бектрекінгу предикат дає невдачу. Бектрекінг не скидає побічний ефект." Звичайно в пролозі вхід у мету можливий через "call" при виклику і через "redo" при бектрекінгу. Ціль має внутрішню структуру: Перший ромб - рішення при виклику call. Другий ромб - рішення при скиданні redo. Для вбудованих предикатів немає внутрішніх крапок рішення усередині мети. Вона представляється у вигляді:
У такий спосіб прохід через убудований предикат буде: або call - exit, або redo - fail. 4.4 Введення-виведення списків. Для введення-виведення списків можливі наступні два способи. Читайте також:
|
|||||||||||
|