【问题标题】:OCaml - Need some help at implementing my rev functionOCaml - 在实现我的 rev 功能时需要一些帮助
【发布时间】:2015-02-21 10:11:33
【问题描述】:

我有一个任务,我必须对“列表”中的大部分不同功能进行重新编码。我目前在实现 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

任何指针?

【问题讨论】:

    标签: ocaml reverse


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      相关资源
      最近更新 更多