Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Prolog > Cписок списков!!!


Автор: Rubiakina 25.2.2009, 15:16
Здравствуйте!!
Не знаю как даже и подобраться к этой задачке... smile 

Дан список [[a,b,c],[c,g,r],[r,h,a],[n,m]], 
и необходимо получить [a,b,c,g,r,h,n,m] список, в котором каждый элементы первого списка не повторяется


Напишите, пожалуйста, на Турбо Прологе!

Большое спасибо  smile 

Вот есть код, может кому-то поможет, в котором объединяются два списка в один с неповторяющимися элементами:
Код


domains
    i=integer
    s=i*
predicates
    union(s,s,s)
    member(i,s)

clauses
    member(X,[X|_]). 
    member(X,[_|T]) :– member(X,T). 
    
    union([ ],S2,S2). 
    union([H|T],S2,S):- member(H,S2), !, union(T,S2,S).        
    union([H  |T],S2,[H|S]):- union(T,S2,S). 
                 



И вот что получаем:

Код

Goal: union([1,2,3],[2,5,1],M)
M=[3,2,5,1]
1 Solution


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)