@Mathematica
moveElements[a_,b_,c_,d_]:=Module[{lst1,lst2},
{lst1,lst2}=a//
RotateLeft[#,b]&//
{Take[#,c],Drop[#,c]}&;
lst2//
RotateLeft[#,d]&//
Join[lst1,#]&//
RotateRight[#,b+d]&
];
In[1] := moveElements[{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 3, 1, 5]
Out[1] = {0, 1, 2, 4, 5, 6, 7, 8, 3, 9}
QE1hdGhlbWF0aWNhCgptb3ZlRWxlbWVudHNbYV8sYl8sY18sZF9dOj1Nb2R1bGVbe2xzdDEsbHN0Mn0sCgoJe2xzdDEsbHN0Mn09YS8vCgkJUm90YXRlTGVmdFsjLGJdJi8vCgkJe1Rha2VbIyxjXSxEcm9wWyMsY119JjsKCglsc3QyLy8KCQlSb3RhdGVMZWZ0WyMsZF0mLy8KCQlKb2luW2xzdDEsI10mLy8KCQlSb3RhdGVSaWdodFsjLGIrZF0mCl07CgpJblsxXSA6PSBtb3ZlRWxlbWVudHNbeyAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5IH0sIDMsIDEsIDVdCk91dFsxXSA9IHswLCAxLCAyLCA0LCA1LCA2LCA3LCA4LCAzLCA5fQo=