問題是我必須打印所有最小起始碼,然後是最小主碼,然後是最小甜點。 我寫這如何在序言中打印多個答案
starter(greenSalad,10).
starter(seserSalad,20).
starter(tomatoSalad,10).
main(chicken,40).
main(pizza,30).
main(pasta,30).
dessert(raspberryCake,30).
dessert(fruitCake,20).
dessert(applepie,20).
min(Head,Tail,Head):- Head<Tail.
min(Head,Tail,Tail):- Tail<Head.
findmin([Only], Only).
findmin([Head|Tail], Minimum) :- findmin(Tail, TailMin), Minimum is
min(Head, TailMin).
**findMeal**2:-findall(Sp,starter(_,Sp),SList),findmin(SList,Spm),printStarter2(Spm),
findall(Mp,main(_,Mp),MList),findmin(MList,Mpm),printMain2(Mpm),
findall(Dp,dessert(_,Dp),DList),findmin(DList,Dpm),printDessert2(Dpm).
printStarter2(Spm):-starter(S,Spm),write(S),nl,fail.
printMain2(Mpm):-main(M,Mpm),write(M),nl,fail.
printDessert2(Dpm):-dessert(D,Dpm),write(D),nl,fail.
的問題是:這給所有最低起動,然後停止不給最小主要和甜點