logo
TurboProlog / Документация / TOM_1

Анонимные переменные

Анонимные переменные позволяют вам упорядочить свои программы. Если

вас в запросе интересует только определенная информация, то, для игнори-

рования ненужных вам значений, вы можете использовать анонимные перемен-

ные. В Прологе анонимные переменные отображаются одиночными символами

подчеркивания ("_").

Следующий пример демонстрирует использование анонимных переменных.

Загрузите программу CH03EX04.PRO и скомпилируйте ее в память.

/* Программа CH03EX04.PRO */

predicates

male (symbol)

female (symbol)

parent (symbol, symbol)

clauses

male (bill).

male (joe).

female (sue).

female (tammy).

parent (bill, joe).

parent (sue, joe).

parent (joe, tammy).

Анонимная переменная может быть использована вместо любой другой пе-

ременной. Разница заключается в том, что анонимные переменные никогда не

примут какого-либо значения.

Например, в следующем вопросе вам нужно узнать какие люди являются

родителями (parent), но вам не нужно узнавать, кто у них дети. Пролог по-

нимает, что всякий раз, когда в запросе вы используете символ подчеркива-

ния, вам не требуется знать значение, присваиваемое переменной на данном

месте.

Goal: parent (Parent,_).

Получив такой запрос, Пролог ответит:

parent=bill

parent=sue

parent=sue

3 Solutions

Goal:_

В этом случае (из-за анонимных переменных) Пролог найдет и выдаст

троих родителей, но он не будет выдавать значений, ассоциированных со

вторым аргументом предложения parent.

Кроме этого, анонимные переменные могут быть использованы в фактах.

Следующие факты Пролога

owns(_, shoes).

eats(_).

могут быть использованы в следующих предложениях естественного языка:

У каждого есть (owns) ботинки (shoess).

Все едят (eats).

Анонимные переменные сопоставляются с чем угодно. В большинстве слу-

чаев проименованные переменные смогут работать абсолютно равнозначно, од-

нако, их значения не будут служить какой -либо полезной цели.