下面的代码有什么作用?
not(P) :- P, !, fail.
not(P).
以及它与以下 2 个代码的工作方式有何不同:
not(P) :- P, !, fail.
not(P) :- P, !.
下面的代码有什么作用?
not(P) :- P, !, fail.
not(P).
以及它与以下 2 个代码的工作方式有何不同:
not(P) :- P, !, fail.
not(P) :- P, !.
这里是树:
P
)P
成功:P
失败:P
成功:行为与第一个程序完全相同,使用Failure退出整个谓词。
P
失败:请注意,not/1
它已经是内置的,但我想我们可以在本练习中覆盖它。
?- [user].
|: not(P) :- P, !, fail.
|: not(P).
Warning: user://1:9:
Warning: Singleton variables: [P]
|: % user://1 compiled 0.02 sec, 2 clauses
true.
好的
?- not(true).
false.
?- not(false).
true.
看起来挺好的。
?- [user].
|: not(P) :- P, !, fail.
|: not(P) :- P, !.
|: % user://1 compiled 0.02 sec, 2 clauses
true.
?- not(true).
false.
?- not(false).
false.
看起来挺好的。