非单调构造的单调替代品

以下是如何在程序中使用单调谓词而不是不纯的非单调构造的示例 :

  • dif/2 用于代替像 (\=)/2 这样的非单调构造
  • 算术约束 (CLP(FD),CLP(Q)和其他)意味着用来代替模式算术谓词
  • !/0 几乎总是导致非单调程序,应该完全避免。
  • **** 在此时无法做出明智决策的情况下,可能会出现实例化错误。