【问题标题】:OCaml option return value and option matchingOCaml 选项返回值和选项匹配
【发布时间】:2016-12-31 19:58:08
【问题描述】:

我想编写一个函数,它接受自定义类myType 的值,并返回myType option。不确定我的问题是签名、内容还是返回值。

例如,我尝试写了以下内容(简化了,没有实际意义):

let rec myFunc (t:myType) myType option =
  let t2 = myFunc t in
    match t2 with
    | None -> None
    | _ -> t

我收到以下编译错误:

错误:此模式匹配 'a 选项类型的值 但预期的模式与 'b -> 'c -> 'd

类型的值匹配

不确定我的语法有什么问题或我在哪里误解了 OCaml。

【问题讨论】:

    标签: match ocaml optional ml


    【解决方案1】:

    我只看到一个缺少的冒号和Some:

    let rec myFunc (t:myType): myType option =
        let t2 = myFunc t in
        match t2 with
        | None -> None
        | _ -> Some t
    

    略微精简的版本:

    let rec myFunc (t:myType): myType option =
        match myFunc t with
        | None -> None
        | _ -> Some t
    

    【讨论】:

    • 对我来说它看起来像一个无限循环。
    • 当然是。 OP 说:(它被简化了,没有真正的意义)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    相关资源
    最近更新 更多