そのため、再帰を使用せずに、foreach、foreachelem などのループのみに依存して、Prolog を使用してリストから単一の要素を取得しようとすると問題が発生します....
したがって、リスト Xs = [1,2,3] があり、各要素を個別に取得したいと考えています。私がこれまでに思いついた最高のものはこれです...
sumOfList(Xs, Max) :-
( foreach(List, Xs), count(I, 1, _), param(Xs)
do
( foreach(List2, Xs), count(J, 2, _), param(Xs, I, List)
do
( List =< List2
-> Max is List2;
Max is List1
)
)
).
これは私がこれまでに得た中で最高のものです...だから、最終的な計算に使用できるMaxのプレースホルダーをどのように作成すればよいのでしょうか?