![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.10.2013
Сообщений: 5
|
![]()
Разработать правила для предиката, реализовать указанную цель на прологе(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). |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что такое предикат для группы и как его сделать? | 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 |