1
我需要帮助指出我的谓词将出现错误的原因,以便将列表中的所有元素加倍。我对Prolog很陌生,很可能错过了一些非常明显的东西。基本上,我的谓词应该包含一个列表(例如[1,2,3])并生成一个列表,其元素加倍([2,3,6])。将Prolog中的列表中的所有元素加倍
这是我到目前为止有:
double_elements([], []).
double_elements([H|T], Doubled_list):-
X is H*2,
append([X], Doubled_list, Doubled_list),
double_elements(T, Doubled_list).
然而,我的代码目前只输出“假”无论我所付出的投入它。任何帮助,将不胜感激。
去查查了'追加([X],Doubled_list,Doubled_list)'的文档。你试图将'[X]'附加到某个东西上,并用相同的东西来统一它。这总是会失败。 – Enigmativity
在Prolog中,不能在谓词子句中更新相同的变量。 – lurker