サブリスト [[1].[2],[3]] を含むリストが与えられた場合、リスト内の最初のサブリストの HEAD が他のサブリストの残りの HEADS より小さいかどうかを確認するにはどうすればよいですか?
1 に答える
2
ISO-Prologの用語の標準順序の比較は、再帰的に任意の複雑な構造に適用できます。
次に、あなたの問題は次のようなもので解決できます
first_head_is_less([H|R]) :- maplist(@<(H), R).
テスト:
?- first_head_is_less([[1],[2],[3]]).
true.
?- first_head_is_less([[10],[2],[3]]).
false.
上記のコードを編集すると、(たとえば)失敗するため、修正する必要があります。
?- first_head_is_less([[1,2],[1,3],[3]]).
true.
これは正しくありません。より厳密なテストを次に示します。
first_head_is_less([H|R]) :-
maplist(head_is_less(H), R).
head_is_less([F|_], [E|_]) :- F @< E.
于 2013-04-20T03:36:38.090 に答える