【发布时间】:2013-06-17 07:24:54
【问题描述】:
例如,如果我有一个表达式“C = A and B”,我想创建某种谓词,例如
solv(A, B, C) := C is A, B.
这样称呼它
solv(A, true, true).
这样 Prolog 就会说“B 是真的”。请帮忙。
【问题讨论】:
标签: prolog logic expression
例如,如果我有一个表达式“C = A and B”,我想创建某种谓词,例如
solv(A, B, C) := C is A, B.
这样称呼它
solv(A, true, true).
这样 Prolog 就会说“B 是真的”。请帮忙。
【问题讨论】:
标签: prolog logic expression
看起来像
and(A, B, R) :- A = true, B = true, R = true.
or(A, B, R) :- (A = true ; B = true), R = true.
solve(A, B, C, Result) :- or(A, B, R1), and(R1, C, Result).
【讨论】:
R 中返回“真”并成功,但如果为假,它们将失败并且不实例化R。
and/3 将与 and(true, true, true). 相同,您的 or/3 将与 or(true, _, true). or(_, true, true). 相同。你为了没有明显的收获而采用了更冗长/间接的表述,这也让我抬起了众所周知的眉毛。