问题是我必须打印所有最小起始码,然后是最小主码,然后是最小甜点。 我写这如何在序言中打印多个答案
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.
的问题是:这给所有最低起动,然后停止不给最小主要和甜点