1
沒有發現鑑於這種非常簡單的變量 - 第模型重點在地圖
class Variable(name: String, negated: Boolean = false) {
def evaluate(b: Boolean): Boolean = negated match {
case false => b
case true => !b
}
def negate = new Variable(this.name, !this.negated)
override def toString = negated match {
case false => name
case true => "~" + name
}
override def hashCode() = name.hashCode()
override def equals(obj: Any) = name.equals(obj)
}
class Clause(vars: List[Variable]) {
def evaluate(values: Map[Variable, Boolean]): Boolean = {
val evaluatedVars = vars.map(v => v.evaluate(values(v)))
(false /: evaluatedVars)(_ || _)
}
}
這簡單的斷言拋出一個異常
val c = new Variable("c")
val d = new Variable("d")
val c3 = new Clause(List(c.negate, d))
assertTrue(c2.evaluate(Map(c -> false, d -> true)))
java.util.NoSuchElementException:關鍵未找到:〜Ç
我錯過了什麼?