栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Prolog递归和递归调用的构建输出

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Prolog递归和递归调用的构建输出

我有这个尝试。我对您的第一个解决方案进行了更改,只是为了消除一些冗余。我用谓词

connected/2
来概括的关系,共同出现在所有的连接
by_car/2
by_train/2
by_plane/2
事实:

connected(From, To) :- by_car(From, To).connected(From, To) :- by_train(From, To).connected(From, To) :- by_plane(From, To).

然后,我定义

travel/2
connected/2

travel(From, To) :-    connected(From, To).travel(From, To) :-    connected(From, Through),    travel(Through, To).

转到

travel/3
,请注意,嵌套
go...
术语中的最终连接是一个结构
go/2
,而其余​​的是
go/3
s。因此,我们需要填充
X
一系列以
go/3
终止的嵌套结构
go/2
。这是我们的基本条件。然后,它是简单地重复的第二条款的问题
travel/2
,但包括一个
go/3
在第三个参数,将捕获实例化以值
From
Through
在每次迭代:

travel(From, To, go(From, To)) :-    connected(From, To).travel(From, To, go(From, Through, Route)) :-    connected(From, Through),    travel(Through, To, Route).


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号