0
나는 그들이 아직 주장하지 않은 경우에만 once- 몇 가지 사실을 주장 할, 그래서 확인을
:- dynamic item/6.
init(Id, LastId, Depth) :-
ruut(X,Y,Color),
(item(X,Y,Color,Depth,Id,LastId) -> true;
assert(item(X,Y,Color,Depth,Id,LastId))),
fail.
init(_, _, _).
점은 아직 주장되지 않은 경우에만 그것을 주장하는 것입니다 . 그러나 오류가 발생합니다 :
ERROR: my_pgm:initsialiseeri_seisund/3: Undefined procedure: my_pgm:item/6
내가 뭘 잘못하고 있니? 죄송합니다 멍청한 질문에 대한,하지만 난 정말 프롤로그에 새로운입니다!
그 밖의 코드는 무엇입니까? 'ruut()'에서'X'와'Y'의 값을 초기화합니까? else 문을 거치지 않고'(\ + item (...) -> assert (...)) 할 수있다. – Rubens
작동하는 것처럼 보입니다 ... 당신은 모든 루터/3에 대해 6 점을 아이템으로 주장하고 있습니까? – CapelliC
예, 알고 있습니다 –