Логическое программирование на языке Visual Prolog. Солдатова О.П - 49 стр.

UptoLike

49
q2(1990);count(Y,N).
2.15 Использование строк в Прологе.
Строкаэто набор символов. При программировании на Прологе
символы могут быть «записаны» при помощи алфавитно-цифрового
представления или при помощи их ASCII-кодов. Обратный слэш (\), за
которым непосредственно следует ASCII-код (N) символа, интерпретируется
как символ. Для представления одиночного символа выражение \N должно
быть заключено в
апострофы (‘\N’). Для представления строки символов
ASCII-коды помещаются друг за другом и вся строка заключается в кавычки
(«\N\N\N»).
Операции, обычно выполняемые над строками, включают:
объединение строк для образования новой строки;
разделение строки для создания двух новых строк, каждая из
которых содержит некоторые из исходных символов;
поиск символа
или подстроки внутри данной строки.
Для удобства работы со строками Пролог имеет несколько встроенных
предикатов, манипулирующих со строками:
str_lenпредикат для нахождения длины строки;
concatпредикат для объединения двух строк;
frontstrпредикат для разделения строки на две подстроки;
frontcharпредикат для разделения строки на первый символ
и остаток;
fronttoken предикат для разделения строки на лексему и остаток.
Синтаксис предиката str_len:
str_len (Str_value, Srt_length), где первый терм имеет тип string, а
второй терм имеет тип integer.
Пример 52:
str_len («Today», L)- в данном случае перменная L получит значение 5;
str_len («Today», 5) – в данном случае будет выполнено сравнение
длины строки «Today» и 5. Так как они совпали, то предикат
выполнится
успешно, если бы длина строки не была равна 5, то предикат вылонился бы
неуспешно.
Синтаксис предиката concat:
concat (Str1, Str2, Str3), где все термы имеют тип string.
Пример 53:
concat («Today», «Tomorrow», S3)- в данном случае перменная S3
получит значение «TodayTomorrow»;
concat (S1, «Tomorrow», «TodayTomorrow») – в данном случае S1 будет
присвоено значение «Today»;
concat («Today», S2, «TodayTomorrow») – в данном случае S2 будет
присвоено значение «Tomorrow»;