1

Maximum number of anyflow variants (1000) exceeded尝试执行此代码时收到错误消息:

findNegative([], []).
findNegative([Q|V], Y) :-
   Q > 0,
   !,
   findNegative(V, Y).
findNegative([H1|T1], S) :-
   findNegative(T1, [H1|S]).

尝试从此答案执行代码时相同:https ://stackoverflow.com/a/6671142/4829408

4

1 回答 1

3

考虑以下代码:

find_negatives([], [])。
find_negatives([E|Es], Xs) :- E >= 0, find_negatives(Es, Xs)。
find_negatives([E|Es], [E|Xs]) :- E < 0, find_negatives(Es, Xs)。

示例查询:

?- find_negatives([1,2,3,-1,-2,-3,0,1,2,0,-1], Xs).
   Xs = [-1,-2,-3,-1]
;  false.
于 2015-12-21T18:56:20.693 回答