Я работаю над проектом с OCaml, и есть некоторые проблемы с массивами, с которыми я не уверен. Мне не разрешено использовать модуль List, поэтому, пожалуйста, дайте мне некоторые идеи или предложения с моими работами.Найти уникальные элементы в списке в OCaml
Во-первых, я уже реализована функция 'a list -> 'a list
под названием uniq
, возвращающих список Uniq элементов в массиве, например uniq [5;6;5;4] => [6;5;4]
Вот моя реализация:
let rec uniq x =
let rec uniq_help l n =
match l with
[] -> []
| h :: t -> uniq_help t, n if (n = h) else (h :: (uniq_help(t, n)))
match x with
[] -> []
| h::t -> uniq_help t, h
;;
I MOT уверен, что это правильная реализация, может ли кто-нибудь дать мне какое-нибудь предложение или правильность?
Код, указанный здесь, не компилируется для меня. Похоже, что вы где-то отсутствуете. Способ определения локального символа, такого как 'uniq_help', -' let local = в '. –
Они не массивы в OCaml, они списки. Массивы подразумевают изменчивое состояние, что не так, как списки в ocaml работают без явного использования чего-либо из модуля Array. –