我正在尝试实现一个如下工作的谓词:
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调用
感谢您的帮助!
答案 0 :(得分:2)
标准Prolog“if-statement”是:
(If -> Then; Else)
其中If
,Then
和Else
是目标。您可以轻松地使用谓词的定义来打开谓词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)
。