Я пытаюсь написать функцию на F #, которая вставляет y
в S
, где y
и S
- наборы элементов, в возвращаемом наборе S
элементы должны быть вставлены в порядке, используя<
, если x
существует в S
, то S
возвращается без изменений.Я надеюсь, что это очень ясно.Я реализовал функцию следующим образом
let rec insert x S =
match S with
|[] -> x
|e::rest -> e::(insert x rest)
, но она не дает ожидаемого результата.Например, если
S = [2; 3]
x = [3; 4]
, вывод должен быть
[2; 3; 4]
Но я получаю
[2; 3; 3; 4]