Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Frontstr/4

Предикат frontstr расщепляет String1 на 2 части. Синтаксис предика-

та:

frontstr (NumberOfChars, String1, StartStr, EndStr )

/*(i,i,o,o)*/

где StartStr содержит NumberOfChars первых букв String1, а EndStr содер-

жит остаток. При обращении к frontstr первые 2 параметра должны быть ог-

раниченными, а последние 2 должны быть свободными.

Concat/3

Предикат concat устанавливает, является ли String3 строкой, получен-

ной при сцеплении String1 и String2. Он имеет форму:

concat(String1,String2,String3)

/*(i,i,o),(i,o,i),(o,i,i),(i,i,i) */

По крайней мере два параметра должны быть связаны перед тем, как вы

вызываете concat; это означает, что concat всегда дает только одно реше-

ние (другими словами, он - детерменический). Например, мы вызываем

concat ("croco","dile",In_a_while)

, связывая In_a_while с crocodile. В другом случае, если See_ya_later

связано, то обращение к предикату

concat("alli","gator", See_ya_later)

завершается успешно только если See_ya_later является связанным с

alligator.

Str_lеn/2

Предикат str_lеn может решать 3 задачи: определяет или проверяет

длину строки или возвращает строку пробелов заданной длины. Он имеет фор-

мат:

str_lеn (StringArg, IntergerLength) /* (i,o),(i,i),(o,i)*/

str_len связывает переменную IntergerLength с длиной строки StringArg или

проверяет, имеет ли StringArg данную длину (IntergerLength). В версии 3

потока, str_lеn возвращает строку пробелов данной длины, это может быть

использовано для распределения буферов и др.

isname /1

Предикат isname проверяет, является ли аргумент верным именем сог-

ласно синтаксису Турбо Пролога, и имеет формат:

isname (String) /* (i) */

Имя начинается с буквы алфавита или символа подчеркивания, за кото-

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

и последующие пробелы игнорируются.

format/*

Предикат format выполняет преобразования, аналогичные writef, но

format выдает результат в виде строковой переменной.

format (OutputString,FormatString,Arg1,Arg2,Arg3, ...,ArgN)

/* (o,i,i,i, ...,i) */

Преобразования типа

В этом разделе мы рассматриваем стандартные предикаты, предназначен-

ные для преобразования типов. Они выполняют преобразования между символом

и его значением в коде ASCII, строкой и символом, строкой и целым, стро-

кой и вещественным, и символами верхнего и нижнего регистра. Это предика-

ты - char_int, str_char, str_int, str_real, upper_lower.

char_int/2

Предикат char_int преобразует символ в целое число или целое в сим-

вол и имеет формат:

char_int(Char,Integer) /* (i,o),(o,i),(i,i) */

Если оба аргумента ограничены, char_int проверяет, соответствуют ли

аргументы. Если один аргумент ограничен, а другой свободен, то char_int

выполняет преобразование и связывает выходной параметр с преобразованной

формой выходного параметра.

Имеется ввиду: этот предикат в действительности не является необхо-

димым в Турбо Прологе версии 2.0, потому что мы ввели автоматическое пре-

образование между символом и целым числом. Мы оставляем char_int для сов-

местимости с версией 1.х.

Соседние файлы в папке Документация