TL; DR: Besoin d'aide appeler une règle avec un fait
Ive a commencé avec Prolog, venant de C et a des choses à travailler ... jusqu'à ce qu'ils se sont évidemment brisées. J'écris un petit programme de peinture de voiture pour moi-même pendant que j'apprends ce nouveau langageProlog - appeler une règle fait
J'essaie d'appeler une règle avec un fait (est-ce possible?), Ce que je veux faire est d'utiliser un fait "voitures" et un autre fait "peinture" pour faire une grande liste composée de toutes les voitures dans toutes les différentes peintures. Je vais avoir du mal à faire le travail de code que je veux ... un coup d'oeil
les faits Ive a obtenu:
cars([ferrari, bmw, ford, jaguar]).
paints([red, white, blue, yellow]).
/*Now I wanted to loop through each car, eachtime printing
out the different paint combinations of that car: */
start:- loop_cars(cars(C)). /*starts loop_cars with all the cars e.g [ferrari...]*/
/*but it false here, even if C = [ferrari...]*/
loop_cars([]).
loop_cars([Ca|Rest]):-
loop_paints(Ca,paints(P)), /*The car is sent off for a paint job,...*/
loop_cars(Rest). /*...(cont from above) same false here as before*/
loop_paints(_,[]).
loop_paints(Ca,[Pa|Rest]):- /*This works*/
write([Ca,Pa]), /*Writes it like "[ferrari, white] [ferrari, blue] ..."*/
loop_paints(Ca,Rest).
donc je suppose que j'ai besoin d'aide pour résoudre deux problèmes:
- Comment puis-je transmettre le contenu des voitures de faits et peintures aux deux boucles?
- Un "garage" pour mettre toutes les combinaisons. Garage étant une grande liste composée de petites listes de 2 articles (la voiture et la peinture).
je me sens inadéquate en raison de mon ne sachant Prolog. Est-ce normal? – JAL