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