List 将元素附加到列表的Prolog递归
我尝试构建一个谓词,它将附加随机数目的子列表结果列表List 将元素附加到列表的Prolog递归,list,recursion,prolog,List,Recursion,Prolog,我尝试构建一个谓词,它将附加随机数目的子列表结果列表 my_predicate([], AnotherList, []). my_predicate([Head|List], AnotherList, Result):- random(0,5,N), nested_predicate(N, Head, AnotherList, SM), my_predicate(List, AnotherList, Result), append(SM, Result, SM2), writ
my_predicate([], AnotherList, []).
my_predicate([Head|List], AnotherList, Result):-
random(0,5,N),
nested_predicate(N, Head, AnotherList, SM),
my_predicate(List, AnotherList, Result),
append(SM, Result, SM2),
write(SM2).
一切都很好,但我无法指定SM2以任何方式产生结果。我做错了什么?在Prolog中,不能为变量赋值。此外,在代码中,结果将始终绑定到空列表 我想你想要的是这样的:
my_predicate([], AnotherList, []).
my_predicate([Head|List], AnotherList, Result):-
random(0,5,N),
nested_predicate(N, Head, AnotherList, SM),
my_predicate(List, AnotherList, SM2),
append(SM, SM2, Result),
write(Result).
您还应该发布嵌套谓词的定义,否则很难尝试。。