我需要一些关于检查和操作列表的三个 prolog 谓词的帮助。我是 prolog 的新手,任何帮助将不胜感激。
三个谓词是:
double_up(+List1, -List2)List2当每个元素为List1两次时为真。查询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当与输入相同的列表时为真List,但列表中的每个Takeout元素都被替换为Putin元素。Count 应该是被替换的 Takeouts 的数量。例如,查询fancy_replace([9,10,1,9,2],9,0, X, C)应该给出X = [0,10,1,0,2]andC = 2。输出列表中元素的顺序无关紧要。