현재 레일 라인 프로그램을 작성하고 있지만 사실에서 나온 목록을 사용하는 데 약간의 문제가 있습니다. 나는 다음과 같은 사실과 규칙을 프롤로그 아주 새로운 오전과 지금까지 쓴 : 규칙이 두 위치 공통점이있는 라인 (들)의 이름을 반환하는프롤로그 규칙의 사실 목록에서 목록 사용
location(euston, [northernLine]).
location(warrenStreet, [victoriaLine, northernLine]).
location(warwickAvenue, [bakerlooLine]).
location(paddington, [bakerlooLine]).
hasCommonLine(Location1, Location2, Line) :-
location(Location1, Line),
location(Location2, Line).
생각입니다. 이것은 hasCommonLine(warwickAvenue,paddington,Line).
을 시도하면 작동하지만 hasCommonLine(euston,warrenStreet,Line).
을 시도하면 false를 반환합니다.
이 규칙은 목록의 첫 번째 요소 만 검사하기 때문에 목록의 모든 요소를 검사하는 대신 [northernLine]
과 [victoriaLine]
을 비교하기 때문입니다. 이 일을 성취하기위한 모든 지침은 많은 도움이 될 것입니다!
를 부를 것이다 나는 운동이기 때문에 그들이리스트로 지정 같은데요. 다음 연습은 "20 행 추가"일 것입니다. –
@ S.L.Barth이게 어떻게 문제가되는지도 모르겠다. ... –
나의 의심을 바로 잡고 유익한 답변을 해주셔서 감사합니다.:) – LamarTheLizard