如何在Prolog中实现谓词list_for_set(Xs,Cs),其中Cs是一个列表,该列表包含与Xs相同的元素,按其第一次出现的顺序排列,但其出现的次数仅为1。 ?- list_for_set([1, a, 3.3, a, 1.4], Cs). 只有当Cs = 1,a,3,4时才会发生这种情况。 ?- list_for_set ([1, a, 3,3, a, 1,4], [a, 1,3,4])
在Prolog中,[H|T]是以H开头的列表,其余的元素位于list T (内部用'.'(H, '.'(…))表示)中。
是否有可能以类似的方式定义新语法?例如,是否可以定义[T~H]是以H结尾的列表,其余的元素在列表T中,然后在谓词的头和体中像[H|T]一样自由地使用它?是否也可以将<H|T>定义为与列表不同<
我在试着学习prolog。我想用prolog写一个通用数字列表的代码。到目前为止,我有pick_numbers_general(List, N, NumList),其中List是一个通用列表(包括嵌套列表),N是一个数字。如果NumList是List中大于N的数字列表(包括嵌套列表中的数字),则谓词成功。数字在Numlist中的出现顺序与在L中的