Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Убрать повторы!
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Michael Shestero
Guest
 
Сообщений: n/a
По умолчанию Убрать повторы! - 05.10.2005, 21:44

факты определяют пары элементов из разных множеств, например:
Код:
fact(01, 10).
fact(02, 11).
fact(02, 12).
Хочется отсюда перечислить элементы первого множества.
Проблема в том что банальный запрос
Код:
?-f(X,_).
или

Код:
q(X):-f(X,_).
?-q(X).
будет выдавать повторения, т.е. 01,02,02 вместо 01,02.

Как "правильно" избавиться от этих поторений?

Михаил
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,862
Сказал(а) спасибо: 2
Поблагодарили 287 раз(а) в 287 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 06.10.2005, 23:44

Вот решение на VIP:
Код:
facts
fact(integer,integer)
множ1(integer)
predicates
найти проверка(integer)
goal найти.
clauses 
найти:-fact(X,_),проверка(X),fail;true.
проверка(X):-not(множ1(X)),asserta(множ1(X)),write(X),nl,!;true. 

fact(01,10). 
fact(02,11). 
fact(02,12).
Для Вашего безтипового Пролога переделайте сами. Если не получится - спрашивайте.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как это убрать Egorro Видеокарты 11 31.12.2011 14:44
КАК ЭТО УБРАТЬ??? ORION 105 Библиотека 3 25.12.2011 15:47
Как убрать это меню. Артём Фирсанов Любые вопросы от новичков 13 03.04.2011 20:06
Как убрать смс банер? Сергей 63 Любые вопросы от новичков 8 02.06.2010 13:36
Помогите убрать СВО sandzhi Техническая поддержка 1 05.01.2009 19:57
Как убрать это сообщение??? lexa virus Софт и программы 10 05.11.2008 11:47
Как это убрать? Ltybc Операционная система Windows 4 04.11.2008 17:43
Построение списка, определяющего повторы в другом списке garrys Prolog 3 28.04.2006 13:20
Убрать pop-up меню NLF Visual Basic 1 14.02.2006 21:23
Макрос убивающи повторы! Stas23 Visual Basic 0 27.12.2004 03:17
Как убрать мерцание VaderSB Delphi 4 17.07.2003 15:50



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов