Q
切削加工在序言
0
A
回答
3
的! (cut)意味着如果你到目前为止(成功在当前的目标),不要做任何回溯(考虑替代方法来满足当前的目标),可能已经在裁员的安置之前打开。
在你的例子中,cut被用来简单地表达如何定义X和Y的最大值。也就是说,一旦你成功地使用子目标X >= Y
,正确的选择就不再存在疑问(所以将Max与X )。
这里棘手的是,
(表示逻辑AND)和;
(表示逻辑或)的优先级。后者的绑定比前者弱,因此只有当X >= Y
失败时才能达到Max与Y的替代子目标(如果切入已通过,则不考虑当前目标的替代方案)。
2
我觉得答案已经很清楚了。
嗯,我只是从你的示例中总结一下。在这里,我们可以“假定”有两个规则存在,这是
max(X, Y, Max) :- X >= Y, !, Max = X.
max(X, Y, Max) :- Max = Y.
为什么有必要把那个!
?这是因为如果没有这一点,你可以查询像max(5,4,Max)
,其结果将是
Max = 5;
Max = 4;
它为什么会发生?因为Prolog系统找到了每个可能的答案。当!
到来时,它将停止找到其他(s)。
相关问题
- 1. 削减在序言
- 2. Mathematica中的切削工具的变体
- 3. 封面削减剖切面
- 4. 切削刃向左下方
- 5. 语言切换程序块在drupal中不工作
- 6. COUT双打无切削变量
- 7. AFNetworking削减在URL中自动添加
- 8. db2look削减多头程序
- 9. 切换语言后重新加载tabBarController
- 10. 在网站切换语言
- 11. 经过CreateProcessWithLogonW切换语言与ALT切换停止工作
- 12. 序言中的剪切问题
- 13. 前缀附加在序言 - 它是如何工作的?
- 14. ASP.NET语言切换
- 15. Magento语言切换
- 16. 切换语言codeigniter
- 17. 语言切换器
- 18. 序言helloWorld不工作
- 19. 削减
- 20. 多语言网站:切换语言
- 21. PHP多语言 - 如何切换语言?
- 22. Opencart如何添加一切从语言文件在PHP循环
- 23. 逻辑在序言语言
- 24. 保存断言在序言
- 25. 追加字符串列表在序言
- 26. 如何在应用程序的运行时切换语言?
- 27. 在应用程序中切换语言android
- 28. 在远程应用程序上切换输入语言
- 29. 在Eclipse RCP应用程序中进行动态语言切换
- 30. 序言追加名单