2011-03-08 5 views
3

나는 프롤로그를 처음 사용했습니다.Prolog에서 이것을 수행하는 방법?

이 기본 '데이터베이스'구조를 사용하여, 나는 내가

물고기를 먹는
  • 을 찾기 위해 데이터베이스를 조회 할 수있을 것이라고 생각?
  • 고래는 무엇을 먹나요?

    eats(Horse, grass). 
    eats(Monkey, banana). 
    eats(Whale, fish). 
    

내가 (가능한 경우) 해당 데이터베이스의 설정을 변경하지 싶습니다. 각각의 원치 않는 결과와 함께 다음 쿼리를 사용하고있었습니다.

여기에서 나는 에게 '누가 물고기를 먹는가?'라고 묻는 질문을했습니다. 여기

?- eats(X, fish). 
true. 

, 나는 물어을 시도하고 있었다 '고래가 먹는 않는거야?'

?- eats(Whale,X). 
X = grass ; 
X = banana ; 
X = fish. 

답변

9

검색어가 정확합니다. 사실 데이터베이스가 잘못되었습니다. 원자는 소문자로 시작해야합니다 (또는 따옴표로 묶여 야합니다). 당신은 말, 원숭이, 고래를 대문자로 시작 했으므로 그들은 변수입니다 (그리고 무엇이든 일치합니다). 따라서 현재 데이터베이스는 다음과 같습니다.

eats(X, grass). 
eats(X, banana). 
eats(X, fish). 
관련 문제