所以我在尝试使用 Prolog 从列表中获取单个元素而不使用递归时遇到了麻烦,只依赖于循环,例如 foreach、foreachelem 等。
所以我有一个列表 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 创建某种可用于最终计算的占位符?