вставлять и удалять из изменяемых списков - PullRequest
0 голосов
/ 17 января 2019

Я хочу написать функцию, которая вставляет значение v в список в позиции a. тип списка

type RefList<'t> = Item<'t> ref
and Item<'t> = | Nil | Cons of 't * RefList<'t>

let rec insert<'t> (a: int) (v: <'t>) (structure: RefList<'t>): unit =

и

let rec remove<'t> (a: int) (structure: RefList<'t>): unit =

Я пробовал что-то подобное, но я уверен, что я нахожусь на очень неправильном пути

let mutable worker = 0
     if a = worker then then Cons(v, !structure) else Cons(y, insert i v ys)
 worker <- worker + 1

Я не уверен, должен ли я сопоставить | Nil и | Cons или нет. «блок» смущает меня.

Надеюсь, кто-нибудь может мне помочь, спасибо!

Редактировать: у меня уже есть функции RefListToList и ListToRefList. это может быть полезно для других функций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...