检查是否存在任何解决方案

时间:2015-07-18 10:00:15

标签: prolog

我有一些代码

import scala.collection.mutable.ListBuffer

object FileName{

  var currentFileNameList: ListBuffer[String] = new ListBuffer

  def getFileName(): String = {
    var fileName = java.util.UUID.randomUUID().toString();

    while (true) {
      if (!currentFileNameList.contains(fileName)) {
        currentFileNameList = currentFileNameList :+ fileName
        return fileName
      } else {
        fileName = java.util.UUID.randomUUID().toString();
      }
    }

    throw new RuntimeException("Error - filename not generated")
  }

}

doStuff只有一个可能的子树,但是rulesObeyed可以根据组的数量而拥有无穷无尽的规则,因为可以通过多种方式遵守规则。 这导致该计划一遍又一遍地返回相同的解决方案。

有什么方法可以说像

throw new RuntimeException("Error - filename not generated")

所以它不会考虑所有可能的规则解决方案吗?

1 个答案:

答案 0 :(得分:1)

解决方案是使用once/1 - 或\+ \+作为错误发布。