希望你一切都好。我对序言相当陌生,我正在编写的代码遇到问题。代码的目的非常简单。它将列表中的每个元素添加到最后一个元素。我可以用 Java 做一些事情:
static void add(double[] array){
double x = .0;
for (int i = 0; i < array.length; ++i)
x += array[i];
System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)
然而,我一直在摸不着头脑,不知道如何在序言中做到这一点。我有以下代码
add_list([], X):- write(X).
add_list([Head|Tail],X) :-
Y is Head,
X is 0 + Y, %initialize X and add Y every time it runs.
add_list(Tail, X).
Run Code Online (Sandbox Code Playgroud)
我得到的错误是,当代码第二次运行时,变量 X 已经有界,这是有道理的,但我真的不知道如何解决这个问题。
任何帮助将不胜感激。
谢谢。
prolog ×1