OCaml-需要一些帮助来实现我的rev功能吗

OCaml-需要一些帮助来实现我的rev功能吗,ocaml,reverse,Ocaml,Reverse,我有一个任务,我必须对“列表”中的大部分不同函数重新编码。我目前在执行rev功能时遇到问题 type 'a my_list = | Item of ('a * 'a my_list) | Empty;; 这是允许我们使用的列表类型,以下是我尝试使用的列表类型: let rev my_list = let rec rev_list list = function | Empty -> list | It

我有一个任务,我必须对“列表”中的大部分不同函数重新编码。我目前在执行rev功能时遇到问题

type 'a my_list =
     | Item of ('a * 'a my_list)
     | Empty;;
这是允许我们使用的列表类型,以下是我尝试使用的列表类型:

let rev my_list =
    let rec rev_list list = function
        | Empty               -> list
        | Item (first, rest) -> rev_list (Item (first, list)) 
          rest in rev_list Empty;;
原型的rev功能有:

'a list -> 'a list:
这就是我得到的:

'a -> 'b my_list -> 'b my_list

有什么建议吗?

编辑:嗯,就在我发布问题的时候,我找到了答案,如果它对任何人都有帮助,就在这里

let rev my_list =
let rec rev_list list = function
| Empty               -> list
| Item (first, rest) -> rev_list (Item (first, list))
rest in rev_list Empty my_list