Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйста создать два списка на Prolog? 
:(
    Опции темы
strikelon88
Дата 6.10.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.10.2009

Репутация: нет
Всего: нет



помогите пожалуйста сделать два списка по прологу.
1)intersection(List1,List2,intersection)
Список intersection включает в себя элементы общие для списков List1 и List2
2)token(Token,List,Delimiters)
token представляет собой подсписок списка List ограниченный началом и концом списка и символами указанными в списке delimiters.
PM MAIL   Вверх
Грымзик
Дата 7.10.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 7.10.2009

Репутация: 6
Всего: 6



Не очень понятно: intersection включает в себя одинаковые элементы на
одинаковых местах, тогда

?- intersection([1,2,3,5,5],[5,4,3,5,5,1],X), write(X), nl, fail.

intersection(_,[],[]).
intersection([],_,[]).
intersection([X|Tail1],[X|Tail2],[X|I]):- intersection(Tail1,Tail2,I),!.
intersection([_|Tail1],[_|Tail2],I):- intersection(Tail1,Tail2,I).

или элементы, которые просто встречаются в обоих списках без повторения, тогда

?- intersection2([1,2,3,5,5],[5,4,3,5,5,1],X), write(X), nl, fail.

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

intersection2([],_,[]).
intersection2([X|Tail],List,[X|I]):- not(member(X,Tail)), member(X,List), intersection2(Tail,List,I),!.
intersection2([_|Tail],List,I):- intersection2(Tail,List,I).

а вот token

?- token(X,[a,b,c,d,a,c],[a,c]), write(X), nl, fail.

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

append([],A,A).
append([X|Tail],A,[X|NewTail]):- append(Tail,A,NewTail).

token(Token,List,Delimiters):- member(D1,Delimiters),  member(D2, Delimiters), append(_,[D1|Tail],List),
append(Token,[D2|_],Tail).
token(Token,List,Delimiters):- member(D1,Delimiters),  append(_,[D1|Token],List).
token(Token,List,Delimiters):- member(D2, Delimiters), append(Token,[D2|_],List).

PM MAIL   Вверх
strikelon88
Дата 8.10.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.10.2009

Репутация: нет
Всего: нет



БОЛЬШОЕ СПАСИБО!!! четвертый день сидел разбирался, все не получалось а prolog только ошибки выдавал=)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.