1

[(101,a),(42,b),(85,b)] をソートすると Prologsort([(101,a),(42,b),(85,b)],X).は get ですがX = [ (42, b), (85, b), (101, a)].、どうしてでしょうか? Prolog はタプルを認識し、それらを最初の要素でソートし、次に 2 番目の要素でソートしますか?

4

2 に答える 2

-1

あなたの仮定は合理的なようです。いくつかのドキュメントを確認できます。個人的には ciao のドキュメントが気に入っています。

235 ページ、次に 115 ページを参照してください。キーでソートすることもできます。

一部の人々は、この種の述語 (非宣言的) を使用することを悪い習慣と見なしていることに注意してください。基本的に、この述語には 2 つの用語があり、1 つは根拠が必要で、もう 1 つは根拠がないため、実際にはこれは関数であり、論理述語ではありません。ロジックプログラミングの「純粋さ」を心配している人は、おそらくそれを使用しない回避策を見つけるでしょう。

于 2013-06-18T14:19:39.417 に答える