(我使用'asserta'将带有多个列的大型csv文件放入数据库中.)有没有办法按列进行数字排序而不删除重复项?
正如您从我的简单示例(按第二列/元素排序)中所看到的,predsort方法可以删除重复项.
我可以通过切换和删除一些列并使用msort来解决这个问题,但我在这里特别要求您提供替代方案.
任何建议将非常感谢!
mycompare(X,E1,E2):-
E1=[_,A1],E2=[_,A2],compare(X, A1, A2).
?- predsort(mycompare,[ [[95, 97], 11], [[97, 99], 4], [[97, 98], 4]],X).
X = [[[97, 99], 4], [[95, 97], 11]].
?- msort([ [[95, 97], 11], [[97, 99], 4], [[97, 98], 4]],X).
X = [[[95, 97], 11], [[97, 98], 4], [[97, 99], 4]].
%What I want is:
?- wanted_sort(...<as above>...).
X = [[[97, 98], 4], [[97, 99], 4], [[95, 97], 11] ].
Run Code Online (Sandbox Code Playgroud)