14、Prolog内置谓词详解

Prolog内置谓词详解

1. 影响回溯的内置谓词

在Prolog编程中,有两个内置谓词会影响回溯过程中事件的正常顺序,它们分别是 “!” 和 repeat
- “!”(剪枝) :可以看作是一个内置谓词,它会让Prolog执行过程锁定已经做出的某些选择。其作用是移除目标重新满足的可能性。
- repeat :作为一种额外的方式,通过回溯来生成多个解决方案。虽然它是内置的,但可以看作是按以下方式定义的:

repeat.
repeat :- repeat.

当把 repeat 作为规则中的一个目标时,会产生以下效果:
1. 目标会成功,因为 repeat 的第一个子句是一个事实。
2. 如果回溯再次到达这一点,Prolog将能够尝试另一种选择,即 repeat 的第二个子句所提供的规则。使用该规则时,会生成一个新的 repeat 目标,由于它与第一个事实匹配,所以又会成功。以此类推, repeat 目标在回溯时可以无限次成功。

repeat 的作用在于,它允许从没有选择的规则构建出有选择的规则,并且每次可以生成不同的值。

例如,考虑内置谓词 get_char ,当Prolog尝试满足

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值