在序言中向函数添加任意数量的参数

时间:2018-11-08 21:08:11

标签: prolog

我想实现一个while循环,例如:  前言中的while(true) {(assign(n,1));(assign(r,2));}。该示例可以认为是发生在OO语言(如java)中的情况,而true会将n分配为1,r分配为2。我如何在序言中实现这样的谓词,当while为真时必须执行多个谓词。 我希望我的谓词像

while(true,[(assign(n,1)),(assign(r,2))].

1 个答案:

答案 0 :(得分:0)

嗯,有趣的问题。为什么您不只是想写下来就写下来?

while(X, Y) :-
    X, Y.

我尝试将其写下来,当我写完之后,我写出了它,它起作用了吗?

?- while(true, (format("hello, ", []), format("sailor", []))).
hello, sailor
true.