【发布时间】:2020-04-10 07:19:30
【问题描述】:
我是 Prolog 的初学者,我有两个使用递归从两个列表中生成元组。例如,func ([1, 2, 3], [4, 5, 6]) 应该输出 [(1, 4), (1,5), (1,6), (2, 4), (2 , 5), (2, 6), (3, 4), (3,5), (3, 6)]。我有以下代码:
func([],_,[]).
func([X|T1],Y,[Z|W]):-
match(X,Y,Z),
func(T1,Y,W).
match(X,[Y],[(X,Y)]).
match(X,[Y|T],[(X,Y)|Z]) :-
match(X,T,Z).
但是我对 func([1,2,3],[4,5,6],X) 的输出是 X = [[(1, 4), (1, 5), (1, 6)], [(2, 4), (2, 5), (2, 6)], [(3, 4), (3, 5), (3, 6)]].
如何去掉输出中间多余的方括号?我已经尝试在我的两个函数中使用括号和括号,但我无法弄清楚。
【问题讨论】: