Самое простое из возможных решений:
let rec swapItems = function
| a::b::xs -> b::a::swapItems xs
| xs -> xs
Мне нравится делать имена переменных, которые представляют собой последовательности, например списки, во множественном числе, например, xs
вместо x
.
Примечание.что это не хвостовая рекурсия, поэтому переполнение стека произойдет, если вы укажете очень длинный список.