リストをチェックして操作するための 3 つのプロローグ述語について、助けが必要です。私はプロローグが初めてで、どんな助けでも大歓迎です。
3 つの述部は次のとおりです。
double_up(+List1, -List2)
List2
は、各要素がList1
2 倍の場合に true です。クエリdouble_up([a,b,c],X)
はX=[a,a,b,b,c,c]
. 出力リスト内の要素の順序は重要ではありません。pivot(+List1, +Pivot, -Smaller, -GreaterEq)
がより小さいSmaller
の数のリストであり、 がより大きいか等しい の数のリストである場合、 は真です。List1
Pivot
GreaterEq
List1
Pivot
fancy_replace(+List, +Takeout,+Putin, -NewList, -Count)
NewList
がinput と同じリストの場合は true ですが、リスト内のList
各Takeout
要素は要素に置き換えられPutin
ます。Count は、置き換えられた Takeout の数である必要があります。たとえば、クエリは とfancy_replace([9,10,1,9,2],9,0, X, C)
を与える必要がX = [0,10,1,0,2]
ありC = 2
ます。出力リスト内の要素の順序は重要ではありません。