0

述語を記述cmp_list/3します。最初の2つの引数は2つのリストであり、最後の引数は、、、、、またはをComparison意味geします。:以上:以下:以下:出力よりも大きい次の ようになります。 最初の2つのリストはソフトウェアのバージョンを表し、関数を使用してソフトウェアの2つのバージョンを比較し、どちらが新しいかを確認します。 :ltlegt
ge
lt
le
gt

?- cmp_list([2,3,4], [2,3,5], C).
C = lt ;
C = le .

?- cmp_list([1,2,3,4], [1,1,8], C).
C = gt ;
C = ge .
4

1 に答える 1

0

これは宿題のようなにおいがするので、いくつかのヒントを紹介します。

  • 両方のリストが空の場合、それらは等しい(leまたはge)。
  • 最初のリストが空の場合[], [V|Vt], ...、たとえば1.2と1.2.3を比較すると、再帰の終わりになる可能性があるようなものがあるため、3番目の引数は。になりますlt
  • 同様に、2番目のリストが空の場合、3番目の引数は。である必要がありますgt
  • 両方が空でない場合は、ヘッドを比較する必要があります。それらが異なる場合は、答えるgtか、ltそれに応じて。それらが等しい場合は、尾を繰り返します。
于 2012-07-23T21:33:56.590 に答える