编写一个Prolog程序,该程序应该将列表中的每个元素乘以一个数字

时间:2016-05-04 23:55:35

标签: list prolog multiplying

我正在尝试编写一个带有两个输入参数和一个输出参数的Prolog代码。谓词将被赋予一个列表和一个数字,并找到一个列表,其元素等同于原始列表,每个元素乘以给定的数字。

例如:

ref.once("value", function(data) {
  // do some stuff once
});

我写了这个,我得到了一个“out of global stack”错误。

multiply_list([1, 2, 3, 4, 5] , 3, Result).
Result = [3, 6, 9, 12, 15]

有人可以帮我弄清楚它为什么会抛出这个错误吗?谢谢!

好吧所以我不再得到“超出全局堆栈”的错误,但它仍然不正确。你能指出我的代码错在哪里吗?感谢

multiply_list([], _, 0).
multiply_list([X|Xs], Number, Result):-
    X1 = X * Number,
    append(Result, X1, Result),
    multiply_list(Xs, Number, Result).

0 个答案:

没有答案