微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Prolog 系统发生检查感知冻结

如何解决Prolog 系统发生检查感知冻结

David Tonhofer 提出了一个关于发生检查的有趣问题。一个发生检查感知的协程可以用一个谓词 with_occurs_check/2 实现如下,它可以很容易地实现为 with_occurs_check/1 的细化:

occurs_check_aware_freeze(X,G) :-
    current_prolog_flag(F),freeze(X,with_occurs_check(F,G)). 

即通过使用带有进一步参数的 with_occurs_check/2。但是,一个可实现的 with_occurs_check/[1,2] 也适用于回溯的主要问题仍然存在。由于唤醒目标可以留下选择点,我们不想泄漏。

Prolog 引擎会以某种方式解决 David Tonhofer 推测的问题吗?是否有任何 Prolog 系统已经实现了发生检查感知冻结?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。