Смекни!
smekni.com

Основы языка Visual Prolog (стр. 2 из 2)

Домены позволяют задавать разные имена различным видам данных.

Например, предложение «Иван – мужчина, которому 45 лет» можно объявить следующим предикатом: person(symbol, symbol, integer) без объявления доменов в их разделе.

Однако такое объявление недостаточно понятно. Если использовать домены, то предикат станет гораздо более «говорящим»:

domains

imya, pol = symbol

vozrast = integer

predicates

person(imya, pol, vozrast)

Одно из преимуществ объявления собственных доменов – это то, что компилятор может отслеживать ошибки типов:

rovesnik(X, Y) :- person(X, Pol, Let), person(Pol, Y, Let)

Вывод:

если переменная в предложении используется более чем в одном предикате, она должна быть одинаково объявлена в каждом их них.

Стандартные домены

Домен

Описание

Значение

short

короткое, знаковое, количественное

-32 768 .. 32 767

ushort

короткое, беззнаковое, количественное

0 .. 65 535

long

длинное, знаковое, количественное

-2 млрд. .. 2 млрд.

ulong

длинное, беззнаковое, количественное

0 .. 4 млрд.

integer

знаковое, количественное

или -32 768 .. 32 767

или -2 млрд. .. 2 млрд.

unsigned

беззнаковое, количественное

или 0 .. 65 535

или 0 .. 4 млрд.

byte

0 .. 255

word

0 .. 65 535

dword

0 .. 4 млрд.

char

символ, заключенный в апострофы

real

число с плавающей десятичной точкой (эквивалентен типу double в C) в интервале:

10-307 .. 10308

string

1) последовательность символов, заключенных в кавычки

2) последовательность букв, цифр и символов подчеркивания, начинающаяся со строчной буквы

symbol

то же, что и string

Раздел целей

Раздел целей аналогичен телу правила: это просто список подцелей.

Цель отличается от правила следующими признаками:

1) за ключевым словом GOAL не следует знак :-

2) при запуске программы VP автоматически выполняет цель.