示例如何在序言中使用predsort(:Compare,+ List,-Sorted) [英] Example how to use predsort(:Compare, +List, -Sorted) in prolog
本文介绍了示例如何在序言中使用predsort(:Compare,+ List,-Sorted)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要订购自定义列表.我要订购的列表将采用这种形式...
I want to order a custom list. The list I want to order will be in this form...
[n(_,2,_),n(_,1,_),n(_,3,_)]
我写了一个比较器
cheaper(n(_,C1,_),n(_,C2,_)) :-
C1>C2.
如何将其与predsort一起使用.我写了一个使用冒泡排序的排序算法,但是列表很大,所以速度很慢.
How do I use this with predsort. I wrote a sorting algorithm using bubble sort, but I have very large lists so it very slow.
有可能做
predsort(cheaper, [n(_,2,_),n(_,1,_),n(_,3,_)] , X).
谢谢:)
推荐答案
尝试一下:
cheaper(>, n(_,C1,_),n(_,C2,_)) :-
C1>C2.
cheaper(<, n(_,C1,_),n(_,C2,_)) :-
C1<C2.
cheaper(=, n(_,C1,_),n(_,C2,_)) :-
C1=C2.
请注意,predsort的工作原理类似于sort,没有双打!如果要保留双打,请尝试
Be aware that predsort works like sort, there are no doubles ! If you want to keep doubles, try
cheaper(>, n(_,C1,_),n(_,C2,_)) :-
C1>C2.
cheaper(<, n(_,C1,_),n(_,C2,_)) :-
C1=<C2.
这篇关于示例如何在序言中使用predsort(:Compare,+ List,-Sorted)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文