我正在使用 SWI-Prolog 在 Prolog 中进行练习,以获取嵌套列表并将其转换为元素列表,然后对元素求和,我制作了两个单独的谓词,这两个谓词使我具有两种功能:
my_flatten(X,[X])->通过将每个列表替换为其元素(递归),将列表(可能将列表作为元素保存)转换为“平面”列表。
my_flatten(X,[X]) :- \+ is_list(X).
my_flatten([],[]).
my_flatten([X|Xs],Zs) :-
my_flatten(X,Y), my_flatten(Xs,Ys), append(Y,Ys,Zs).
addList-> 将列表的所有元素相加并返回它们的总和
addList([],0).
addList([X|Xs],N):-
addList(Xs,N0),N is X+N0.
问题本身是我是 Prolog 中的新编程,我不知道如何将两个谓词连接到同一个谓词中,以便谓词 addList 使用 my_flattern 返回的列表。也许这是一个有点愚蠢的问题,但我已经坚持了好几天了。我需要一些帮助来澄清这个问题的其他问题