OCaml - 在实现我的rev功能方面需要一些帮助

时间:2015-02-21 10:11:33

标签: ocaml reverse

我已经完成了一项任务,我必须重新编写" list"中找到的大部分不同功能。我目前无法实现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

任何指针?

1 个答案:

答案 0 :(得分:1)

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

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