- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
let rnd = System.Random()
// создаём строку, содержащую 10 случайных чисел, разделённых пробелами
let sourceString = System.String.Join (" ", [1..10] |> List.map (fun x -> rnd.Next(1, 10).ToString()))
// функция, удаляющая повторяющиеся числа из строки
let removeDuplicate str =
// разбиваем строку на отдельные числа
let sourceList = sourceString.Split ([|' '|]) |> Array.toList |> List.map (fun x -> System.Int32.Parse (x))
// список, в который будем ложить неповторяющиеся элементы
let newList = ref []
// проходим по всем элементам исходного списка
List.iter
(fun x ->
// если элемента в новом списке ещё нет, кладём его туда
if (List.exists (fun y -> y = x) !newList) = false
then (newList := List.append !newList [x]))
sourceList
// получаем строку из списка с неповторяющимися элементами
System.String.Join (" ", !newList |> List.map (fun x -> x.ToString()))
// получаем новую строку
let resultString = removeDuplicate sourceString
// выводим старую и новую строку
printfn "%s" sourceString
printfn "%s" resultString