Я пишу рекурсивную функцию move , которая берет два списка и вставляет элементы из первого списка во второй список в обратном порядке.
у нас есть предопределенный тип данных списка
type ilist = E | L of int * ilist
Например:
move L(2, L(3, E)) L(1, L(2, E))
даст мне
L(3, L(2, L(1, L(2))))
Я думаю, что у меня есть ошибки синтаксиса с моим кодом. Также не уверен, смогу ли я добавить pre с использованием cons, поскольку это предопределенный тип данных списка. Любая помощь приветствуется!
let rec move l r =
match l with
| E -> []
| L(h,E) -> h::r
| L(h,t) -> move t r