如何在DOSBOX TurboProlog中使用if-then-else条件

如何在DOSBOX TurboProlog中使用if-then-else条件,prolog,turbo-prolog,Prolog,Turbo Prolog,下面是一个给定的程序,如果一个列表是回文的或不是回文的,我将无法使用条件L1=L&L1L打印“列表是回文的!”&“列表不是回文的”,顺便说一句,我几乎尝试了所有在线可用的方法,但没有成功 我尝试了(if->then;else)和(if,then);(否则的话)还有很多,但都失败了。 非常感谢你的帮助 domains ll=integer* predicates rev(ll,ll). revl(ll,ll,ll). clauses rev(L1,L):-

下面是一个给定的程序,如果一个列表是回文的或不是回文的,我将无法使用条件L1=L&L1L打印“列表是回文的!”&“列表不是回文的”,顺便说一句,我几乎尝试了所有在线可用的方法,但没有成功

我尝试了(if->then;else)和(if,then);(否则的话)还有很多,但都失败了。 非常感谢你的帮助

domains
    ll=integer*
predicates
    rev(ll,ll).
    revl(ll,ll,ll).
clauses
    rev(L1,L):-
        revl(L1,[],L).
% I want to use if and else here to print If it is palindrome or not!

    revl([],L,L).
    revl([H|L1],L2,L3):-
        revl(L1,[H|L2],L3).

你不需要使用if和else

如果执行达到您指定的点,您肯定有一个回文

rev(L1,L):-
    revl(L1,[],L),       % it's a palindrome if revl(L1,[],L) succeeds
    write("It's a palindrome!").

% Recursively reverse A to B in revl(A,B,X)

revl([],L,L).                            % succeed if at the end B=X 
revl([H|L1],L2,L3):- revl(L1,[H|L2],L3). % reverse 1 step
你想要什么:

rev(L1,L):-
    revl(L1,[],L),!    % it's a palindrome if revl(L1,[],L) succeeds
    write("It's a palindrome!").

rev(_,_):-             % alternative solution in case it's not a palindrome   
    write("It's not a palindrome!").

% Recursively reverse A to B in revl(A,B,X)

revl([],L,L).                            % succeed if at the end B=X 
revl([H|L1],L2,L3):- revl(L1,[H|L2],L3). % reverse 1 step
使用if-then-else
你不需要使用if和else

如果执行达到您指定的点,您肯定有一个回文

rev(L1,L):-
    revl(L1,[],L),       % it's a palindrome if revl(L1,[],L) succeeds
    write("It's a palindrome!").

% Recursively reverse A to B in revl(A,B,X)

revl([],L,L).                            % succeed if at the end B=X 
revl([H|L1],L2,L3):- revl(L1,[H|L2],L3). % reverse 1 step
你想要什么:

rev(L1,L):-
    revl(L1,[],L),!    % it's a palindrome if revl(L1,[],L) succeeds
    write("It's a palindrome!").

rev(_,_):-             % alternative solution in case it's not a palindrome   
    write("It's not a palindrome!").

% Recursively reverse A to B in revl(A,B,X)

revl([],L,L).                            % succeed if at the end B=X 
revl([H|L1],L2,L3):- revl(L1,[H|L2],L3). % reverse 1 step
使用if-then-else
是的,我知道我不需要使用If-then-else,但我想使用If-then-else,但它在PROLOG中不起作用!!顺便说一句,我已经完成了这个程序,有没有参与,但仍然感谢你看到我的问题并试图帮助我,我真的很感谢你的努力,但我不能在我的序言中使用if-then-else,这就是为什么我只想用if-then-else来完成它。@FaizanShaikhSarkar添加了一个if-then-else版本。它工作吗?是的,我知道我不需要使用If-then-else,但我想使用If-then-else,但它在PROLOG中不工作!!顺便说一句,我已经完成了这个程序,有没有参与,但仍然感谢你看到我的问题并试图帮助我,我真的很感谢你的努力,但我不能在我的序言中使用if-then-else,这就是为什么我只想用if-then-else来完成它。@FaizanShaikhSarkar添加了一个if-then-else版本。它有用吗?