Я смотрю на этот язык программирования "Ocaml", и у меня есть некоторые проблемы, потому что я прочитал официальную документацию по ocaml, но не понимаю, как использовать:
";" и ";;" и "in" специально внутри определения функций.
Это мой код:
let abs_val value : int -> int =
let abs_ret = ref 0 ;
if value >= 0
then abs_ret := value
else abs_ret := -value ;
let return : int = abs_ret
;;
print_int abs_val -12
Скомпилировано с помощью «ocaml c», в нем сказано:
File "first_program.ml", line 7, characters 2-4:
7 | ;;
^^
Error: Syntax error
И это звучит так странно для меня, потому что официальный ocaml do c говорит, что по окончании определения функции я должен использовать ";;".
Я заметил, что после определения abs_val
VisualStudio Code, когда я go в новой строке, автоматически поместите курсор на 2 пробела справа, а не в начале строки.
Я новичок в ocaml, поэтому не знаю, распространено это или нет но для меня это звучит так, будто чего-то не хватает, и, вероятно, это так :)
PS: Я знаю, что функция abs уже существует, но я делаю это, чтобы узнать.
Обновление:
let abs_val value =
let abs_ret = ref 0 in
if value >= 0
then abs_ret := value
else abs_ret := -value in
let return : int = abs_ret;
;;
print_int abs_val -12
Я ближе прав?