prolog - 如何定义此谓词以使其不会永远运行
问题描述
我需要定义一个谓词:
?- X = succ(X), nu(X).
false.
我该怎么做?似乎它不会返回任何东西,只会永远运行。
解决方案
你可以这样尝试:
nu(0).
nu(S) :-
acyclic_term(S),
S = succ(X),
nu(X).
acyclic_term/1 调用是第一次查询失败所必需的。
推荐阅读
- java - 如果不建议输入选项,则清除 AutoCompleteTextView
- c# - 如何检查字符串是否包含c#中的特定字符串
- html - html 和每个元素通常使用什么字体大小?
- python - 如何使用 Python 拆分数据库中的一系列字符串,然后旋转显示单词和出现次数的结果
- python - 使用 xarray 时的段错误,仅在“导入火炬”时
- angular - 在浏览器中调试 TS 文件
- javascript - 将嵌套对象转换为对象的 Json Array
- json - 从 API 而不是 Json 文件访问数据
- ruby-on-rails - 在 Spree 中查找产品的卖家
- php - 根据过滤器 ID 过滤产品