If statement 用或| |和&&;检查
如何在序言中制作这样的内容:If statement 用或| |和&&;检查,if-statement,prolog,If Statement,Prolog,如何在序言中制作这样的内容: if(A > -1 && A > 0){ //DoSomething } else{ //DoAnotherThing } 我试过这个: positive([], []). %Tudo Vazio positive([H1|T1], [H2|T2]) :- H1 > -1, H1 > 0 -> H2 = H1, positivos(T1, T2). 请注意,Prolog是一种逻辑编程语言,与C或等效语言
if(A > -1 && A > 0){
//DoSomething
}
else{
//DoAnotherThing
}
我试过这个:
positive([], []). %Tudo Vazio
positive([H1|T1], [H2|T2]) :- H1 > -1, H1 > 0 -> H2 = H1, positivos(T1, T2).
请注意,Prolog是一种逻辑编程语言,与C或等效语言不同 Prolog将“成功”或“失败”检查您向它抛出的任何内容。 因此,如果你想检查A是否为正(我想你想这样做),你可以简单地写:
positive(A) :- A > 0.
如果要检查列表中的所有数字是否为正数,则可以通过列表递归,使用前面的谓词检查其所有成员,如:
positive([]).
positive([H|T]) :-
positive(H),
positive(T).
Prolog中的“if/then”可以用编写
是或
的序言
positive(A) :-
(
A > 0, print('A is positive')
;
A < 0, print('A is negative')
;
A == 0, print('A is zero')
).
阳性(A):-
(
A>0,打印('A为正')
;
A<0,打印('A为负片')
;
A==0,打印('A为零')
).
通过询问prolog
positive(1)
或positive(-1)
if(A>-1&&A>0)
是否等同于if(A>0)
,以简化问题。你说你“试过这个:…”,那么发生了什么?请注意运算符优先级。比较->
与,
的优先级。Prolog不像C。如果你有,p:-p1,p2,…,pn
这意味着,p
是真的,如果p1
是真的,p2
是真的,并且。。。对于变量的某些实例化。你并不真的需要->
。你真的需要展示你期望得到什么以及你得到了什么。这包括首先消除任何编译器错误和警告代码>始终出现在行的前面,而不是末尾。这是因为
看起来与几乎相同,
我还建议添加括号,并在语法缩进中反映语义嵌套。有关缩进析取的合理方法,请参见的第100行。事实上,我建议比本例中的缩进宽度多一点。重点是放置代码>在行的前面,而不是像您现在再次做的那样,在末尾。很容易出错代码>对于,
,如果将两者都放在末尾。