У нас вы можете посмотреть бесплатно Детально про важливий предикат repeat в Логічному програмуванні или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Детально про важливий предикат repeat в Логічному програмуванні repeat — вбудований предикат SWI-Prolog, що завжди успішний. Перше речення: факт — негайний успіх. Друге речення: рекурсивний виклик — створює нескінченну кількість точок повернення (choice points). % Факт (базис індукції) repeat. % Рекурсивне правило repeat :- repeat. Теоретичне значення Предикат repeat вносить у декларативну мову Prolog елемент імперативності — циклічність. Він створює нескінченне обчислення, яке генерує необмежену сукупність розв'язків через механізм бектрекінгу. Це дозволяє глибше зрозуміти як рекурсію, так і природу циклів в імперативних мовах програмування. repeat є аналогом нескінченного while True в Python/C — цикл завершується лише при виконанні явної умови виходу (cut або успіх перевірки) repeat нагадує базис індукції та рекурсивний виклик, але не є класичною рекурсією: не зменшує складність і не передає аргументи Чому repeat — «міст» між парадигмами? В декларативних мовах змінна пов'язується зі значенням один раз (single assignment). В імперативних — змінна набуває довільних значень, існує стан пам'яті. repeat моделює цикли через повторну генерацію контекстів виконання без зміни змінних. Типові помилки та підводні камені 1. Відсутність умови виходу repeat без перевірки та cut — нескінченний цикл, що не зупиниться. Завжди додавайте exit_condition та ! 2. Забутий cut після умови Без cut залишаються choice points — при подальшому бектрекінгу цикл може запуститись знову 3. Side-effects при бектрекінгу write, assert та інші дії з побічними ефектами НЕ відміняються при бектрекінгу — текст вже виведено 4. Плутанина з рекурсією repeat — не рекурсія у класичному розумінні. Він не передає аргументи та не спрощує задачу Порада: завжди використовуйте паттерн repeat → дія → перевірка → cut Джерела 1. SWI-Prolog documentation — repeat/0 2. Failure Driven Loops — uni-saarland.de (8.3.2) 3. Looping until a Condition is Satisfied — javatpoint 4. Stack Overflow: How to go back to "repeat" in Prolog? 5. Bratko I. Prolog Programming for Artificial Intelligence НаУКМА, ф-т Інформатики. © Андрій Козін - студент © Ющенко Юрій Олексійович - доцент, к.ф.-м.н.