findThree([H|T],_,3).
findThree([H|T], M, Z):-
(member(H,M)
-> Z2 is Z + 1,
select(H,M,C),
findThree(T,C,Z2)
;select(H,M,C),
findThree(T,C,Z)
).
그럼 내가하려는 것은 요소가 지정된 목록에 있는지 확인하는 것입니다. 그렇다면 변수를 증가시키고 그 중 3 개가 발견되면 중지합니다. 그러나 이것이 내 구문에 문제가되는 것은 아닌가? SWI-Prolog에서 If-else 구문을 사용하려고합니다. 그게 문제가 될 수 있니?Prolog에서이 술어에 문제점이 있습니까?
내가 프롤로그에 대해 잘 모르겠지만, 내가 "변수를 증가"고 알고 당신이 할 수없는 일이다. 좀 더 선언적인 접근 방식을 시도해보십시오 (별로 도움이되지 않습니다). – luqui