我刚刚开始prolog,并想知道我们是否可以在Prolog中实现像(if.else)这样的条件语句,如果是这样的话? 有人可以在Prolog中实现此代码只是为了一个例子 -
if(a==2)
print("A is 2");
if(a==3)
print("A is 3");
else
print("HAhahahahaah");
好的,所以我在谢尔盖·迪姆琴科回答后这样做。
Test(A) :-read(A),
( A =:= 2 ->
write('A is 2')
;
( A =:= 3 ->
write('A is 3')
;
write('HAhahahahaah')
)
).
这是正确的答案,除了这显示A = 2,我也不想要(如果我给输入2)。
答案 0 :(得分:3)
一种方法:
test(A) :-
( A =:= 2 ->
write('A is 2')
; A =:= 3 ->
write('A is 3')
; write('HAhahahahaah')
).
另一种方法:
test(2) :-
write('A is 2').
test(3) :-
write('A is 3').
test(A) :-
A \= 2, A \= 3,
write('HAhahahahaah').
这两个代码存在差异,例如选择点,A未实例化时的行为,以及A是否被视为数字。但两者都会以相同的方式工作(除了选择点)和预期的查询test(2).
,test(3).
,test(42).