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).
ただし、リストのリストを試してみると、得られるのはすべて偽です。この問題をさらに理解するのに役立つ可能性のあるリストの再帰に関する指針を誰かに教えてもらえますか?