How to insert elements at different locations of a given list
How about this
myInsert[list_, valuePosList_] := Fold[Insert[#, Sequence @@ #2] &,
list,
SortBy[valuePosList, -Last[#] &]
]
myInsert[list, {{2, 3}, {3, 7}}]
{a, b, 2, c, d, r, m, 3, n}
Look what I found after spelunking:
GroupTheory`PermutationGroups`Private`FoldInsert[
{a, b, c, d, r, m, n},
{2, 3}, {3, 7}
]
{a, b, 2, c, d, r, 3, m, n}
Well, it is not entirely correct for it does not revert the order of insertion... =/
insertList[list_, valuePosList_] := ReplacePart[
list,
Apply[
Rule[#2, Sequence[#1, list[[#2]]]] &,
valuePosList
, {1}
]
]