Пролог (мова програмування): відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
м →‎Табулювання: зв'язність
Рядок 271:
<syntaxhighlight lang="prolog">легальне(X) :- \+ нелегальне(X).</syntaxhighlight>
 
обчислюється таким чином. Пролог намагається довести <code>нелегальне(X)</code>. Якщо доведення цієї цілі знайдено, то початкова ціль (тобто, <code>\+ нелегальне(X)</code>) зазнає невдачі. Якщо доведення не може бути знайдено, то початкова ціль досягає успіху. Отже, префіксний оператор <code>\+/1</code> називається оператором «недовідне», оскільки запит <code>?- \+ Ціль.</code> досягає успіху, якщо Ціль не є довідною. Цей вид заперечення є [[Правильність|правильним]], якщо його аргумент є {{Не перекладено|[[Замкнений вираз|замкненим||Ground expression}}]] (тобто, не містить змінних). Правильність втрачається, якщо аргумент містить змінні, і процедура доведення є повною. Зокрема, запит <code>?- легальне(X).</code> тепер вже не може бути використано для перелічення усіх речей, що є легальними.
 
== Програмування мовою Пролог ==