Результирующее дерево этой рекурсии - это не то, что я, что, вероятно, доказывает, что я не до конца понимаю поведение списков / кортежей в рекурсии.Если бы кто-то мог объяснить, что я сделал неправильно в этом примере, а также объяснить, как правильно думать, я был бы очень благодарен.
move([],{Main, One, Two}) ->
{Main, One, Two};
move([X|Xr], {Main, One, Two}) ->
[{Main, One, Two}, move(Xr, single(X, {Main, One, Two}))].
Желаемый результат (один список, содержащий 3 кортежа):
[{[a,b],[],[]}, {[a],[b],[]}, {[],[b],[a]}, {[b],[],[a]}]
Фактический результат (список, содержащий кортеж и список, содержащий кортеж и список ...):
[{[a,b],[],[]},[{[a],[b],[]},[{[],[b],[a]},[{[b],[],[a]}]]]]