引数として指定された特定の長さを持ち、パラメーターとして渡される特定の要素を含む要素として、特定のプロパティを持つ特定のリストのすべてのサブリストを生成したいと思います。私はこれをなんとか実行できましたが、2つの述語の助けを借りて、最適性の点で非常に遅いです:
sublist([], []).
sublist([A|T], [A|L]):-
sublist(T, L).
sublist(T, [_|L]):-
sublist(T, L).
choose(T, L):-
sublist(T, L),
(dimension(2, T); dimension(1, T)),
belongs(f, T).
T
ここでは、述語のパラメーターを介しchoose
て、次元2または1を持ち、要素を含むLリストのすべてのサブリストに戻りたいと思いf
ます。
述語dimension
とは、それぞれmember
事前定義された述語と同じ使用法です。プログラムがそれらの特定のサブリストのみを作成するように、この2つの条件を述語に組み込む方法を教えてください。length
member
sublist