-1

列表:Bag = [ (a, 1, 2), (b, 2, 3), (c, 3, 4)],

我想比较列表 a 中的 1*2、列表 b 中的 2*3 和列表 c 中的 3*4 的结果。并对结果和输出进行排序,如何在 PROLOG 中做到这一点?

谢谢你。

4

1 回答 1

0

您可以使用sort/2

?- findall([Result, Name], 
        (member((Name, A, B), [(a, 3, 2), (b, 1, 3), (c, 3, 4)]),
         Result is A*B),Output), 
   sort(Output, SOutput).

SOutput = [[2, a], [6, b], [12, c]].
于 2012-04-16T20:18:01.327 回答