ocaml - ошибка несвязанного значения в функции сопоставления рекурсивного списка

Я скопировал рекурсивную функцию сопоставления списков со слайда вводного курса ocaml.

let rec fac n = match n with
     0 -> 1
     | _ -> n * fac(n-1);;

fac 3;;

Я получаю: "Ошибка: несвязанное значение fac"

Почему это?

1 ответ

Использование MX tuareg-eval-buffer в emacs дает:

        OCaml version 4.02.3

# let rec fac n = match n with
     0 -> 1
     | _ -> n * fac(n-1);;

fac 3;;
    val fac : int -> int = <fun>
#   - : int = 6
# 

Вы, вероятно, запускаете MX tuarge-eval-region только с fac 3 выбран таким образом, функция никогда не была определена.

Другие вопросы по тегам