我正在尝试在序言中编写一个过程,其中如果 L1 = [1,2,3] 且 L2 = [4,5,6] 那么 L3 = [1,4,2,5,3,6]
so shuffle([1,2,3],[4,5,6],[1,4,2,5,3,6])
到目前为止我有这个:
shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],_) :- shuffle(Xs,Ys,Z), shuffle(X,Y,Z).
这是我第一次尝试编写序言代码,因此我仍在尝试了解语法、规则和所有内容。
我理解这个逻辑,我只是不确定如何实现它,所以任何帮助将不胜感激!
Thanks!
Edit:我已经弄清楚了。如果有人感兴趣的话,这是解决方案:
shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],[Z1,Z2|Zs]) :- shuffle([X],[Y],[Z1,Z2]),shuffle(Xs,Ys,Zs).