Использование строк
При прогарммировании на ТП символы может быть записаны при помощи кодов ASCII. Обратная связь, за которой следует код ASCII символа, интерпретируется как символ. Для представления одиночного символа выражение \N должно быть заключено в одинарные кавычки. Для представления строки символов их коды помещают друг за другом и вся строка заключается в двойные кавычки.
Стандартные предикаты для работы со строками
Определение длины строки
Str_len (строка, длина) (string, string) : (i, o) (i, i)
(i, o) – с параметром длина связывается количество символов в строке
(i, i) – выполняетсмя успешно, если строка имеет указанную длину.
Конкатенация строк
concat (Стр1, Стр2, Стр3) (string, string, string) : (i, i, o) (o, i, i) (i, o, i) (i, i, i)
(i, i, o)
concat ("фут”, "бол”, X) X=”футбол”
(o, i, i)
concat (X, "ball”, "football”) X= "foot”
(i, i, i)
concat ("foot”, "ball”, "football”) True
Создание подстрок
frontstr (КопСтр, ВхСтр, ВыхСтр, Остаток) (integer, string, string, string) : (i, i, o,
o)
Выходная строка получается из входной строки отрезанием начальных символов, количество которых определяется параметром КолСим. Остаток строки определяется параметром Остаток.
Разделение строки на две части
frontchar (строка, ПервСимвол, Остаток) (string, char, string) (i, o, o) (i, i, o)
(i, o, i) (i, i, i)(o, i, i)
(i, o, o)
frontchar ("Sad”, X, Y) X=’S’, Y=’ad’
(i, i, o)
frontchar ("Sad”, ‘S’, X) X=’ad’
(i, o, i)
frontchar ("Sad”, X, ‘ad’) X=’S’
(i, i, i) frontchar ("Sad”, ‘S’, ‘ad’) true
(o ,i, i)
frontchar (X, ‘S’, ‘ad’) X=”Sad”
Используется для преобразования строки в список символов
convert (" ", [ ]).
convert (Str,
[H|T]):- frontchar (Str, H, Ost), convert (Ost, T).
Прверка на строку
isname (строка) (string) : (i)
Имена испоьзуются для обозначения символических констант, предикатов и переменных.
Формирование атомов из строк
fronttoken
(Строка, Атом, Остаток) (string, string, string) : (i, o, o) (i, i,
o) (i, o, i) (i, i, i) (o, i, i)
Атом – последовательность символов, имеющих смысл. Атомы могут быть : именем ТП, строчным представлением числа, отдельным символом (кроме пробела).
(i, i, o) fronttoken ("Go to cursor”, X, Y) X=”Go” Y=”to cursor”