Prolog if-statement

时间:2013-11-15 14:44:42

标签: if-statement prolog

我正在尝试实现一个如下工作的谓词:

pred :-
   % do this always

   % if-statement
      %do this only, when if-statement is true

   % do this also always, independent if if-statement where true or false.

我需要一个程序的这个功能,它具有gui(XPCE)的可选性。你可以用

来调用它
start(true) % with gui

start(false) % without gui

因为我不想用相同的逻辑编写两个不同的谓词,但是一次使用gui而另一次使用gui,我希望有一个谓词,只有在start(true)为的时才会调用gui-code调用

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

标准Prolog“if-statement”是:

(If -> Then; Else)

其中IfThenElse是目标。您可以轻松地使用谓词的定义来打开谓词start/1的参数:

pred :-
    % common code
    (   start(true) ->
        % gui-only code
    ;   % non-gui code
    ),
    % common code

如果没有Else目标,您可以将其替换为目标true(If -> Then)目标失败时,目标If失败。即(If -> Then)目标相当于(If -> Then; fail),而不是(If -> Then; true)