prolog中的连接谓词

prolog中的连接谓词,prolog,Prolog,我正在使用SWI Prolog在Prolog中做一个练习,将一个嵌套列表转换为一个元素列表,然后对元素进行求和,我创建了两个独立的谓词,这两个谓词都具有以下功能: my_flatte(X,[X])->将一个列表(可能将列表作为元素)转换为一个“平面”列表,方法是(递归地)将每个列表替换为其元素 addList->添加列表中的所有元素并返回它们的总和 addList([],0). addList([X|Xs],N):- addList(Xs,N0),N is X+N0. 问题本身是,我是P

我正在使用SWI Prolog在Prolog中做一个练习,将一个嵌套列表转换为一个元素列表,然后对元素进行求和,我创建了两个独立的谓词,这两个谓词都具有以下功能:

my_flatte(X,[X])->将一个列表(可能将列表作为元素)转换为一个“平面”列表,方法是(递归地)将每个列表替换为其元素

addList->添加列表中的所有元素并返回它们的总和

addList([],0).
addList([X|Xs],N):-
   addList(Xs,N0),N is X+N0.

问题本身是,我是Prolog的新手,不知道如何将两个谓词连接到同一个谓词中,以便谓词addList使用my_Fattern返回的列表。也许这是一个有点愚蠢的问题,但我已经坚持了好几天了。我需要一些帮助来澄清其他问题的这个问题

要构造一个新的谓词来同时执行这两个操作,只需使用一个共享变量调用
myu flatte
addList

addListFlattened(L, Sum) :-
    my_flatten(L, L2),
    addList(L2, Sum).

addList
是一个新的谓词(您可以更改名称),它重用了
addList

请不要使用家庭作业标记。它已过时,正在被删除。查看TagWiki了解更多信息。你能做addList(my_flant(L,L2),Sum)吗?
addListFlattened(L, Sum) :-
    my_flatten(L, L2),
    addList(L2, Sum).