У меня есть список: [[1,1,3],[1,2,7],[1,3,9],[2,1,2],[2,2,7],[3,1,4]]
. Меня интересуют только первые два компонента каждого элемента списка. Чтобы все было правильно, я знаю, что мне не хватает компонента, например, [2,3,2]
. Я могу определить максимум b в (a, b, c) в списке. Я хотел бы вставить отсутствующий элемент в нужное положение.Вставьте отсутствующий элемент в список
Я начал с:
work_list([],_,_,_).
work_list([[A,B,_]|F],Alast,Blast,Max):-
A==Alast, work_list(F,A,B,M).
work_list([[A,B,_]|F],Alast,Blast,Max):-
A>Alast, Blast<Max, work_list_miss(F,Alast,Blast,Max).
work_list_miss(F,Alast,Blast,Max):-
Blast<Max, Blast1 is Blast+1, add_list([Alast,Blast,1],F,FNew).
work_list_miss(F,Alast,Blast,Max):-
Blast=Max, Blast1, add_list([Alast,Blast,1],F,FNew), worklist(F,Alast,Blast,Max).
add_list(A,B,[A|B]).
Это не работает. Может ли кто-нибудь помочь? При внесении в список должно быть указано: [[1,1,3],[1,2,7],[1,3,9],[2,1,2],[2,2,7],[2,3,1],[3,1,4]]
Спасибо!
Что сказуемое вызов вы делаете и что вы имеете в виду, что «это не работает»? – lurker
вы можете исправить ваш код, удаляя одиночные и неопределенные вызовы и повторять ... – CapelliC
Я имею в виду, что я не получаю результат списка, который я показываю. – user3038679