Так что это может быть глупым вопросом, но я столкнулся с ошибкой в utop прямо сейчас, после того, как только начал использовать OCaml. Я пытаюсь утверждать, что два целых числа структурно не равны.
assert 2 <> 3;;
Error: This expression has type int but an expression was expected of type
bool because it is in the condition of an assertion
Весь оператор вызывает ошибку, но простой ввод правильного выражения приводит к значению true.
2 <> 3;;
- : bool = true
Я добавил скобки в исходное утверждение assert, и это решает проблему.
assert (2 <> 3);;
- : unit = ()
Мне просто интересно, что именно произошло без скобок, чтобы изначально вызвать ошибку. Когда вам обычно нужны скобки?