小编Alm*_*4my的帖子

Prolog 代码对列表中的元素求和的问题

希望你一切都好。我对序言相当陌生,我正在编写的代码遇到问题。代码的目的非常简单。它将列表中的每个元素添加到最后一个元素。我可以用 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

3
推荐指数
1
解决办法
70
查看次数

标签 统计

prolog ×1