Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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
Recursion 在这种情况下,如何去掉未分配的指针?_Recursion_Prolog - Fatal编程技术网

Recursion 在这种情况下,如何去掉未分配的指针?

Recursion 在这种情况下,如何去掉未分配的指针?,recursion,prolog,Recursion,Prolog,以下是我使用的事实: edge(route(fra), route(tog), walk). edge(route(fra), route(105), walk). edge(route(tog), route(togc), bus). edge(route(togc), route(sub), walk). edge(route(sub), route(ag), metro). edge(route(ag), route(n), metro). edge(route(n), route(a),

以下是我使用的事实:

edge(route(fra), route(tog), walk).
edge(route(fra), route(105), walk).
edge(route(tog), route(togc), bus).
edge(route(togc), route(sub), walk).
edge(route(sub), route(ag), metro).
edge(route(ag), route(n), metro).
edge(route(n), route(a), metro).
edge(route(a), route(r), metro).
edge(route(re), route(m), metro).
edge(route(m), route(v), walk).
edge(route(105), route(t), bus).
edge(route(t), route(vi), metro).
edge(route(vi), route(m), metro).
edge(route(t), route(3), walk).
edge(route(3), route(m), bus).
以及谓词:

seek(route(v), _).
seek(route(R1), [[R2, How]|Res]) :-
    edge(route(R1), route(R2), How),
    seek(route(R2),Res).
当我询问查询时
?-seek(路径(fra),X)。

它应该在列表中返回
R2
How
,但在这种情况下,
Res
保持未分配状态。。。我不知道如何才能绕过这个问题,使该查询只返回包含
R2
的列表。任何帮助都将不胜感激

递归锚(您的
seek/2
谓词的第一个子句)总是返回一个变量作为第二个参数。相反,它应该返回一个空列表