Just nu i M3-nätverket
Gå till innehåll

prolog


CamillaS

Rekommendera Poster

hej jag har en uppgift som lyder så här.

 

Uppgiften handlar om att skapa ett enkelt beslutsstödssystem för matlagning.

 

Predikaten i databasen har följande syntax:

 

at_home([ingredient(rice,2), ingredient(water,10)]).

 

I predikatet at_home, så är ris ingrediensen och 2 står för den mängd ris som finns hemma.

 

recipe(rice,[ingredient(rice,4),ingredient(salt,3),ingredient(water,5)]).

 

I predikatet recipe, så är ris maträtten och det andra argumentet är en lista av ingredienser som krävs för att laga

maträtten.

 

Uppgifter

 

Efter att ha definierat databasen (och lagt till några recept och ingredienser), skall ni skriva två predikat:

 

1. cook(X): ger svar på vad som kan lagas av de ingredienser som finns hemma. Frågan kan

också ställas “Kan jag laga maträtt X”. Svaren skall vara de olika alternativ som

är möjliga att laga.

 

2. buy(x,L): vilka kvantiteter av olika ingredienser som måste handlas för att laga maträtten

x. Programmet skall samla ihop behövda ingredienser och kvantiteter i listan L.

Frågan skall också kunna ställas buy(X,L).

 

En lösning till buy(rice,L), från ovanstående exempel, kan se ut på följande sätt:

L=[ingredient(rice,2),ingredient(salt,3)]

 

jag har klarat av ettan och nästan tvåan.

jag undrar bara hur man kan skriva funktionen om man nu har ingrediensen hemma men inte tillräckligt. då måste man ju jämföra skillnaden på något sätt.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...