Prolog 如何使用嵌套if

Prolog 如何使用嵌套if,prolog,Prolog,例如: testif(X,Y) :- X >= 6 -> writeln('X> 6'), Y>= 3 -> writeln('X >6 and Y> 3'); writeln('X >6 and Y<3'), writeln('X<6'); writeln('Test over'). test(X,Y):- te

例如:

testif(X,Y) :-
    X >= 6 ->
        writeln('X> 6'),
        Y>= 3 ->
            writeln('X >6 and Y> 3');
        writeln('X >6 and Y<3'),        

    writeln('X<6');
    writeln('Test over').

test(X,Y):-
    testif(X,Y).


?- test(7, 3).
Yes (0.00s cpu)
X> 6
X >6 and Y> 3
testif(X,Y):-
X>=6->
writeln('X>6'),
Y> =3->
写入('X>6,Y>3');

writeln('X>6,Y6和Y我想这就是你想要写的:

testif(X,Y) :-
    X >= 6 ->
        (writeln('X>= 6'), Y>=3 -> writeln('X >=6 and Y>=3'); writeln('X >=6 and Y<=3')) ; 
        writeln('X<6'),
    writeln('Test over').

test(X,Y):-
    testif(X,Y).
testif(X,Y):-
X>=6->

(writeln('X>=6'),Y>=3->writeln('X>=6和Y>=3');writeln('X>=6和Y我想这就是你想要写的:

testif(X,Y) :-
    X >= 6 ->
        (writeln('X>= 6'), Y>=3 -> writeln('X >=6 and Y>=3'); writeln('X >=6 and Y<=3')) ; 
        writeln('X<6'),
    writeln('Test over').

test(X,Y):-
    testif(X,Y).
testif(X,Y):-
X>=6->

(writeln('X>=6')、Y>=3->writeln('X>=6和Y>=3');writeln('X>=6和Y)这是在Prolog中编写(嵌套的)if-then-else的惯用方法:

testif(X,Y) :-
    (X >= 6 ->
        writeln('X> 6'),
        (Y>= 3 ->
            writeln('X >6 and Y> 3')
        ;
            writeln('X >6 and Y<3'),
        )
    ;
        writeln('X<6');
    ),
    writeln('Test over').
testif(X,Y):-
(X>=6->
writeln('X>6'),
(Y>=3->
写入('X>6,Y>3')
;

writeln('X>6和Y这是在Prolog中编写(嵌套)if-then-else的惯用方法:

testif(X,Y) :-
    (X >= 6 ->
        writeln('X> 6'),
        (Y>= 3 ->
            writeln('X >6 and Y> 3')
        ;
            writeln('X >6 and Y<3'),
        )
    ;
        writeln('X<6');
    ),
    writeln('Test over').
testif(X,Y):-
(X>=6->
writeln('X>6'),
(Y>=3->
写入('X>6,Y>3')
;

writeln('X>6和Y非常清楚,你描述得非常清楚,这是我第一次看到如何使用括号:)非常感谢,你描述得非常清楚,这是我第一次看到如何使用括号:)首先感谢,你的网站不工作:,访问被拒绝,很遗憾,你的客户“Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;QQDownload 665;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;InfoPath.2;Tablet PC 2.0)@funlive:尝试其他浏览器或更改您的代理/防火墙设置。+1用于更好的样式;我也是这样编写Prolog的。我要补充的是,缩进在Prolog(与大多数其他语言一样)中当然对可读性很重要,但对大多数Prolog解释器来说通常并不重要(与Python相反,Python有时候缩进很重要,很有意义)。首先,感谢您的站点无法正常工作:,访问被拒绝,很遗憾,您的客户端“Mozilla/4.0”(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;QQDownload 665;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;InfoPath.2;Tablet PC 2.0)@funlive:尝试其他浏览器或更改您的代理/防火墙设置。+1用于更好的样式;我也是这样编写Prolog的。我要补充的是,缩进在Prolog(与大多数其他语言一样)中当然对可读性很重要,但对大多数Prolog解释器来说通常并不重要(与Python相反,Python有时缩进很重要,并且有意义)。