Я пытаюсь написать процедуру в прологе, где если 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).
Это моя первая попытка написать пролог-код, поэтому я все еще пытаюсь обернуть голову вокруг синтаксиса, правил и всего.
Я понимаю логику, я просто не уверен, как ее реализовать, поэтому любая помощь будет принята с благодарностью!
Спасибо!
Изменить: Я понял это. Здесь решение, если кому-то интересно:
shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],[Z1,Z2|Zs]) :- shuffle([X],[Y],[Z1,Z2]),shuffle(Xs,Ys,Zs).