의 Recordings 데이터베이스 :프롤로그 프로그램 나는 사실의 세 가지 유형이
album(code, artist, title, date).
songs(code, songlist).
musicians(code, list).
예 :
나는이 4 개 규칙을 만들 필요가album(123, 'Rolling Stones', 'Beggars Banquet', 1968).
songs(123, ['Sympathy for the Devil', 'Street Fighting Man']).
musicians(123, [[vocals, 'Mick Jagger'], [guitar, 'Keith Richards', 'Brian Jones']].
:
함께(X, Y) X와 Y가 같은 앨범에서 재생되면 성공합니다.
artistchain (X, Y) X에서 Y까지 앨범 체인이 존재하는 경우 성공합니다. 두 명의 음악가가 '함께'체인으로 연결됩니다.
역할 (X, Y) X에 Y 역할 (예 : 기타)이있는 경우 성공합니다. 아티스트 X가 노래 Y.
어떤 도움을 기록하는 경우
노래 (X, Y) 이것은 성공?
나는 많이 있지만위한 역할 (X, Y)을 마련 할 수 없었던 내가 해낸 :
role(X,Y) :- prole(X,Y,musicians(_,W)).
prole(X,Y,[[Y|[X|T]]|Z]).
prole(X,Y,[[Y|[H|T]]|Z]) :- prole(X,Y,[[Y|T]|Z]).
prole(X,Y,[A|Z]) :- prole(X,Y,Z).
그러나 그것은 작동하지 않습니다. 수동으로 [[1,2,3], [4,5,6]]와 같이 뮤지션 (_, W) 대신 목록에 입력하면 작동합니다.
다른 방법으로 목록을 변수로 삽입 할 수 있습니까?
다른 규칙들에 관해서는 나는 완전한 손실에 처해 있습니다. 어떤 도움이라도 정말로 감사 할 것입니다.
숙제 인 경우 해당 사항을 표시하십시오. 어떤 아이디어가 떠오르면 도와 드리겠습니다. – 3lectrologos