0
2つの変更可能なリストを入力として受け取り、出力として2番目のリストに最初のリストを逆順に追加する関数を記述する必要があります。型定義は、次のとおりです逆変更可能なリストOcaml
type 'a mylist = 'a listcell ref
and 'a listcell = Nil | Cons of 'a * ('a mylist)
私は定期的にリストを反転するかどうかは承知していますが、破壊的に最初のリストを変更することにより、これを行う関数を書く上で、いくつかの混乱が生じています。ここ は、私が持っているものですが、私は、型エラーを取得しておく:へ
let rec rev_app l1 l2 =
let rec rev_app' l3 l4 =
match !l1 with
| Nil -> l2
| Cons (x,t) -> ref (rev_app t (Cons(x,l4)))
in rev_app' l1 l2