Программирование в Логике. Чанышев О.Г. - 18 стр.

UptoLike

Составители: 

35
Предикат frontchar
frontchar (String, StartChar, EndString)
Шаблоны (i, o, o), (i, i, o), (i, o, i), (i, i, i), (o, i, i)
Примеры:
%Шаблон (i, o, o)
frontchar("Я Вас люблю!",Fc,ES),
write(Fc,"##",Es),
%Выход: Я## Вас люблю!
%Шаблон (i, i, o)
S="Я Вас люблю!",
frontchar(S,'О',ES),
%Предикат не успешен.
%Шаблон (i, o, i)
S="Ненавижу",
frontchar(S,X,"енавижу"),
write(X),
%Выход: Н.
%Шаблон (i, i, i)
S="У-р-р-я-я-я!"
frontchar(S,'У',"-р-р-я-я-я!"),
%Предикат успешен.
%Шаблон (o, i, i) -добавление символа
в начало строки
frontchar(S,'Н',"енавижу"),
write(S),
%Выход: Ненавижу.
Предикат
frontstr – выбор лидирующей подстроки
%шаблон – (i,i,o,o)
frontstr(5,"ААААААА",StartS,EndS),
write(SrartS,"###",EndS),
Выход: ААААА###AA.
36
St="МАМА",
frontstr(5,St,StartS,EndS),
Предикат не успешен.
Предикат
fronttoken
token – это правильное "имя", беззнаковое число
(integer|real), символ
(но не пробел).
Можно проверить, является ли ваша строка правильным
именем, используя встроенный предикат isname. Например:
isname("75Слонов") – No (не имя),
isname("Windows_95") – Yes,
isname("Windows-95") – No.
Ниже приводится исходный текст полной программы на
Visual Prolog'е
/**********************************************
Copyright (c) My Company
Project: TOKEN
FileName: TOKEN.PRO
Purpose: No description
Written by: Visual Prolog
Comments:
************************************************/
include "token.inc"
predicates
token()
clauses
token():-
fronttoken("all kids do fine",TOK,REST),
write("TOK = ",TOK," REST = ",REST),nl,
fronttoken("all+kids do fine",TOK1,REST1),
write("TOK = ",TOK1," REST = ",REST1),nl,
Предикат frontchar                                                   St="МАМА",
frontchar (String, StartChar, EndString)                             frontstr(5,St,StartS,EndS),
Шаблоны (i, o, o), (i, i, o), (i, o, i), (i, i, i), (o, i, i)        Предикат не успешен.
Примеры:
                                                                       Предикат fronttoken
%Шаблон (i, o, o)                                                      token – это правильное           "имя",   беззнаковое   число
frontchar("Я Вас люблю!",Fc,ES),                                (integer|real), символ
write(Fc,"##",Es),                                                     (но не пробел).
%Выход: Я## Вас люблю!
                                                                      Можно проверить, является ли ваша строка правильным
%Шаблон (i, i, o)                                               именем, используя встроенный предикат isname. Например:
S="Я Вас люблю!",                                                     isname("75Слонов") – No (не имя),
frontchar(S,'О',ES),                                                  isname("Windows_95") – Yes,
%Предикат не успешен.                                                 isname("Windows-95") – No.
                                                                      Ниже приводится исходный текст полной программы на
%Шаблон (i, o, i)                                               Visual Prolog'е
S="Ненавижу",                                                         /**********************************************
frontchar(S,X,"енавижу"),                                             Copyright (c) My Company
write(X),                                                             Project: TOKEN
%Выход: Н.                                                            FileName: TOKEN.PRO
                                                                      Purpose: No description
%Шаблон (i, i, i)                                                     Written by: Visual Prolog
S="У-р-р-я-я-я!"                                                      Comments:
frontchar(S,'У',"-р-р-я-я-я!"),                                       ************************************************/
%Предикат успешен.                                                    include "token.inc"

%Шаблон (o, i, i) -добавление символа в начало строки                predicates
frontchar(S,'Н',"енавижу"),
write(S),                                                            token()
%Выход: Ненавижу.
                                                                     clauses
Предикат frontstr – выбор лидирующей подстроки
%шаблон – (i,i,o,o)                                                  token():-
frontstr(5,"ААААААА",StartS,EndS),                                   fronttoken("all kids do fine",TOK,REST),
write(SrartS,"###",EndS),                                            write("TOK = ",TOK," REST = ",REST),nl,
Выход: ААААА###AA.                                                   fronttoken("all+kids do fine",TOK1,REST1),
                                                                     write("TOK = ",TOK1," REST = ",REST1),nl,

                                  35                                                               36