Рекурсивная функция в OCaml возвращает ошибку несвязанного значения - PullRequest
0 голосов
/ 14 февраля 2019

Я получаю ошибку несвязанного значения в visual studio при попытке использовать OCaml

Пробная перезапуск приложения.

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

1 Ответ

0 голосов
/ 14 февраля 2019

Я не вижу каких-либо несвязанных значений, используемых в этом коде.Какое именно сообщение об ошибке вы видите?

Существует ошибка типа, которая может привести к другим проблемам в будущем, возможно.

Ваш рекурсивный вызов contains просто проходитодин аргумент.Но contains ожидает два аргумента.

Обновление

Вот как выглядит несвязанная ошибка значения в OCaml (по крайней мере, обычный выпуск INRIA):

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

Итак, если ваше сообщение об ошибке буквально говорит «ошибка несвязанного значения», то вы пытаетесь использовать значение с именем error, которое не определено.

На самом деле я склонен сомневаться в этом.Это действительно поможет, если вы сможете скопировать / вставить точное сообщение об ошибке.

...