Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2013, 22:00   #1
Kalinak
 
Регистрация: 31.10.2013
Сообщений: 5
Восклицание добавить предикат sublist. пролог(5.2)

Разработать правила для предиката, реализовать указанную цель на прологе(5.2)

Всем привет! У меня версия пролог 5.2 и задание состоит в том, чтобы к нижеприведенной задаче добавить предикат sublist( SubL,L ), здесь SubL,L списки.
Предикат истеннен если: список SubL является подсписком списка L.
Пример: [s,d,s],[a,s],[d,s,f],[ ], [a,s,d,s,f] – подсписки [a,s,d,s,f] (не все).
Цель – sublist ( SL, [a,s,d,f] ).

/****************LISTS************** *****/

DOMAINS
p=string
x=integer
l_p=p*
l_x=x*

PREDICATES
member(p,l_p)
delete(p,l_p,l_p)
append(l_p,l_p,l_p)
reverse(l_p,l_p)
reverse(l_p,l_p,l_p)
print_list(l_p)
generate(x,x,l_x)


CLAUSES

member(X,[X|_]).
member(X,[_|L]):-
member(X,L).

delete(A,[A|L],L).
delete(A,[B|L],[B|L1]):-
delete(A,L,L1).


append([],L,L).
append([A|L],L1,[A|L2]):-
append(L,L1,L2).

reverse([],[]).
reverse([A|L],L1):-
reverse(L,L2),
append(L2,[A],L1).

reverse([],L,L).
reverse([A|L],L1,L2):-
reverse(L,[A|L1],L2).
print_list([]).
print_list([A|L]):-
write(A),nl,
print_list(L).
generate(N,N,[N]).
generate(M,N,[M|T]):-
M<N,
M1=M+1,
generate(M1,N,T).
Kalinak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое предикат для группы и как его сделать? robotgeneration SQL, базы данных 0 23.12.2012 17:10
Пролог UCSRfyRFtF Фриланс 0 26.11.2012 19:56
Оператор как предикат Сtrl Общие вопросы C/C++ 18 19.07.2011 23:08
к элементам первой половины массива добавить минимум, а к элементам второй - добавить максимум specialist Паскаль, Turbo Pascal, PascalABC.NET 3 08.05.2011 01:46
ПРОЛОГ Иринкаа Помощь студентам 7 09.12.2009 02:17