1
我在理解Prolog中的列表遞歸和修改時有點麻煩。我試圖列出一個列表,然後在每個列表中,將列表中的每個元素與最後一個元素相乘。序言:列表遞歸和修改
這裏是我的代碼片段:
/*Find the last element of a list*/
lastelement(X,[X]).
lastelement(X,[_|L]) :- lastelement(X,L).
/*Multiply two lists together*/
multiplication(M1,M2,M1*M2).
/*Take a list, find the last element and multiply every part of that list by that element*/
/*Attach modified list to X*/
modifyL([],X) :- X is [].
modifyL([First|Tset],X) :- lastelement(Y,First),
multiplication(Y,First,MFirst),
modifyL([Tset],X),
append(X,MFirst,X).
當我嘗試列出的任何名單,但是,我得到的是假的。有人可以給我任何指針 列表遞歸,這可能有助於進一步理解這個問題?
您使用哪個實現? – 2013-02-10 20:46:22
我目前使用SWI Prolog版本5.10 – 2013-02-10 20:47:52