빈 데이터베이스로 시작합니다. 나는이 같은 항목을 추가하고Prolog : 추가하기 전에 항목이 데이터베이스에 있는지 확인하려면 어떻게합니까?
person(John,male)
person(Veronica,female)
person(Jessica,female)
: 나는 예를 들어, 일부 데이터베이스 항목을 추가 할 필요가
add_person(N,G):-asserta(person(N,G)).
Howerver, 나는 두 번 같은 사람을 추가하고 싶지 않아, 그래서 필요 추가하기 전에 확인하십시오.
나는 이런 식으로 일을하려고 오전 : 내 데이터베이스가 비어있는 경우
add_person(N,G):- \+ person(N,G),asserta(person(N,G)).
문제는 내가 가진 데이터베이스를 조회 할 수 없다는 것입니다, person(John,male)
을 말한다. 따라서 person(N,G)
은 존재 오류로 실패하고 전혀 추가 할 수 없습니다.
의견이 있으십니까?
저는 GNU Prolog를 사용하고 있습니다. 따라서 명령의 올바른 구문은': -dynamic (person/2) .'입니다. 도움을 많이 주셔서 감사합니다! – Serpent