我有以下列表: [[1,1,3],[1,2,7],[1,3,9],[2,1,2],[2,2,7],[3,1,4]]
。 我只对列表中每个元素的前两个组件感兴趣。为了让它正确,我知道我缺少一个组件,例如,[2,3,2]
。我可以确定列表中(a,b,c)中b的最大值。我想将缺失的元素插入到正确的位置。在列表中插入缺失的元素
我已经开始用:
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