findall述語を使用します
findall(A,getzoo(B,A),MyList)
このリストを返す
A = [[[ant,bear,crab,tortoise,lion],230], [[lion,tiger,bear],560], [[platypus,tiger,snake],3500], [[hippo,giraffe,snail,emu,condor],30], [[bat,robin,hawk,ape,macaw],100]]
リストから分を返す必要があります。Min = [hippo,giraffe,snail,emu,condor],30]
そして、最小述語がストレートリストでうまく機能しています。
minList([H],H).
minList([H|T],Min):- minList(T,Next), (H<Next, Min=H; H>=Next, Min=Next)
.
構造 [[[List],Number],[[List],Number],[[List],Number],...] を解析しようとすると問題が発生し、数値を分離できません。
これが私が探していた答えです。
findVal([[H,Val]|T],Val).
findVal([H|T],Out) :- findVal(T,Out).