Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Стандартные предикаты обработки строк






 

Поскольку обработка символьной информации является довольно важной областью применения логического программирования, то в Прологе существует мощный класс стандартных предикатов обработки строк, предназначенный для обработки данных типа string. Кроме того, эти же предикаты обрабатывают данные совместного типа string–symbol.

Предикат frontchar(string, char, string) предназначен для отделения символа от строки. Его аргументы в порядке записи имеют следующее содержание: входная строка, отделенный символ, строка–остаток. Следует обратить внимание на то, что предикаты этой группы могут работать в разных режимах в зависимости от конкретной формы применения, т.е. от содержания аргументов. Так, в контексте

frontchar(problem, X, Y) X=p, Y=roblem,

а при вызове

frontchar(X, p, roblem) X=problem.

Предикат frontsrt(integer, string, string, string) отделяет от начала строки указанное количество символов. Содержание его аргументов аналогично рассмотренному случаю. Например,

frontstr(4, ”программа”, X, Y) X=“прог”, Y=“рамма”.

Определить количество символов в строке можно с помощью предиката str_len(integer, string). Так,

str_len(X, “функция”) X=7.

Назначением предиката fronttoken(string, string, string) является обособление первой лексемы в предложении. Лексема – это слово, формальное или фактическое (последовательность однотипных символов). Украинские буквы от “a” до “я” воспринимаются как символы раздела. Как будет показано ниже, этот предикат является довольно эффективным при преобразовании строк в списки.

fronttoken(sin(x), L, S) L=sin, S=(x).

Для соединения двух строк применяется предикат

conc(string, string, string). Так, для двух форм конкретизации аргументов имеем

conc(“чемпион”, “мира”, X) X=“чемпион мира”.

conc(“чемпион”, X, “чемпион мира”) X=“мира”.

Для взаимного преобразования типов string - integer используется предикат str_int(string, integer). Так, при вызове str_int(“3”, X) имеем X=3.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.