Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将元素附加到列表的Prolog递归_List_Recursion_Prolog - Fatal编程技术网

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).

您还应该发布嵌套谓词的定义,否则很难尝试。。