OCaml中的递归函数返回未绑定值错误

时间:2019-02-14 00:11:16

标签: compiler-errors ocaml

尝试使用OCaml时,我在Visual Studio中收到“未绑定值错误”

尝试重新启动应用程序。

let rec contains elt l = 
    match l with
    | [] -> false
    |x ::xs ->
        if x = elt then
            true
        else 
            contains(xs)

1 个答案:

答案 0 :(得分:0)

我没有看到此代码中使用任何未绑定的值。您看到的确切错误消息是什么?

存在类型错误,也许会导致其他问题。

您对contains的递归调用仅传递了一个参数。但是contains期望有两个参数。

更新

这是OCaml(至少是通常的INRIA版本)中的未绑定值错误:

# let x = abc;;
Error: Unbound value abc

因此,如果您的错误消息字面意思是“未绑定值错误”,那么您正在尝试使用未定义的名为error的值。

我实际上倾向于对此表示怀疑。如果您可以复制/粘贴确切的错误消息,确实会有所帮助。