【发布时间】:2016-11-12 02:05:06
【问题描述】:
我对使用 Prolog 语言执行长列表连接感兴趣。 目标是定义一个谓词,该谓词获取 unknown 个列表,并将它们全部连接到一个列表中(作为谓词的第二个参数给出)。
我知道我应该首先了解 Prolog 如何支持无限大小的参数,但我认为答案是使用列表,例如: [一个| [[b,c,d] | [[e,f,g] | [h,i,j,k]]]].
如果是这样,我想写谓词有点像这样:
l_conc([ ],[ ]).
l_conc([[ ]|Tail],L):-
l_conc(Tail,L).
l_conc([[Head|L1]|Tail],[Head|L2]):-
l_conc([L1|Tail],L2).
但是,它只会将空列表相互连接。 请在这里帮助我(关于参数表示和谓词本身):-) 谢谢!
【问题讨论】: