Hjælp til lister i PROLOG
HJÆLP
jeg prøver lige at spørge igen, kom til at lægge spørgsmålet forkert.
Jeg sidder og knokler forgæves med et problem i SWI prolog.
Jeg har to lister på to forskellige facts, eks.:
grøntsager([agurk,kartoffel,tomater]). og
opskrift(tomatsuppe,[løg,tomater,gulerødder]).
Der er mange 'opskrift' facts. Jeg skal have defineret et prædikat som tager ingredienserne fra 'grøntsag' ét for ét, tjekker hvilke lister fra 'opskrift' de indgår i og skriver navnet på de fundne opskrifter.
Mit problem er, at jeg kun kan få mit prædikat til at tjekke Hovedet på grøntsagslisten, og det virker også fint, men derefter går det galt. Jeg har prøvet alt muligt, men enten kan den kun tjekke hele Tail'en samtidig eller også sker der ingenting eller out of local stack. Jeg har prøvet at bruge append/3 men ved ikke rigtig hvordan, det skal bruges til dette.
Her er et af mine forsøg, men når Grønt er tjekket igennem, sker der ikke mere. resten af elementerne på grøntsager listen skulle også gerne tjekkes for medlemskab i opskriftlisterne.
find_opskrift(_) :-
grøntsager([Grønt|Rest]),
opskrift(Opskrift,Liste),
member(Grønt,Liste),
write(Opskrift),nl,nl,
fail.
find_opskrift([Rest|_]).
Håber der er nogen, der kan hjælpe.
På forhånd tak