![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Стандартные предикаты обработки строк
Поскольку обработка символьной информации является довольно важной областью применения логического программирования, то в Прологе существует мощный класс стандартных предикатов обработки строк, предназначенный для обработки данных типа string. Кроме того, эти же предикаты обрабатывают данные совместного типа string–symbol. Предикат frontchar(string, char, string) предназначен для отделения символа от строки. Его аргументы в порядке записи имеют следующее содержание: входная строка, отделенный символ, строка–остаток. Следует обратить внимание на то, что предикаты этой группы могут работать в разных режимах в зависимости от конкретной формы применения, т.е. от содержания аргументов. Так, в контексте frontchar(problem, X, Y) а при вызове frontchar(X, p, roblem) Предикат frontsrt(integer, string, string, string) отделяет от начала строки указанное количество символов. Содержание его аргументов аналогично рассмотренному случаю. Например, frontstr(4, ”программа”, X, Y) Определить количество символов в строке можно с помощью предиката str_len(integer, string). Так, str_len(X, “функция”) Назначением предиката fronttoken(string, string, string) является обособление первой лексемы в предложении. Лексема – это слово, формальное или фактическое (последовательность однотипных символов). Украинские буквы от “a” до “я” воспринимаются как символы раздела. Как будет показано ниже, этот предикат является довольно эффективным при преобразовании строк в списки. fronttoken(sin(x), L, S) Для соединения двух строк применяется предикат conc(string, string, string). Так, для двух форм конкретизации аргументов имеем conc(“чемпион”, “мира”, X) conc(“чемпион”, X, “чемпион мира”) Для взаимного преобразования типов string - integer используется предикат str_int(string, integer). Так, при вызове str_int(“3”, X) имеем X=3.
|