问题描述
|
如何快速交换Erlang列表中的两个元素?
例如,我有一个列表:
[1,2,3,4]
,如何快速获得quickly1ѭ?
解决方法
您没有在问题中说如何指定要交换的两个元素。
如果只想交换列表中位置2和3的元素(例如您的示例):
swap23([A,B,C|Rest]) ->
[A,C,B|Rest].
,好吧,如果您希望将任何索引与另一个交换,则可以执行以下操作
swap(List,S1,S2) -> {List2,[F|List3]} = lists:split(S1-1,List),LT = List2++[lists:nth(S2,List)|List3],{List4,[_|List5]} = lists:split(S2-1,LT),List4++[F|List5].