OCaml - исключения - PullRequest
       9

OCaml - исключения

0 голосов
/ 30 сентября 2018

У меня есть код с исключением для случаев, когда 1 <= a <= 30 и 1 <= b <= n </p>

У меня есть:

exception invalid_input

let n = 5

let k = 6

if n<1 || n > 30 || k<1 || k>n  then raise Invalid_input
else ()

Но компилятор говорит синтаксисошибка в строке с if тогда иначе.Что не так?

1 Ответ

0 голосов
/ 30 сентября 2018

Проблема в том, что вы смешиваете выражения и определения.Идиоматический способ вычисления эффективного выражения после некоторых определений состоит в использовании let () = ...:

let () = if n<1 || n > 30 || k<1 || k>n  then raise Invalid_input

В противном случае вы можете отделить это выражение от приведенных выше определений с помощью ;;

;; if n<1 || n > 30 || k<1 || k>n  then raise Invalid_input
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...