(предисловие от переводчика: сел учить окамл, обнаружил, что отсутствует перевод на русский язык руководства для начинающих. Восполняю этот пробел).
Комментарии в OCaml обозначаются символами (* и *), примерно так:
Другими словами, комментарии в OCaml очень похожи на комментарии в Си (
В настоящий момент нет однострочных комментариев (как
Комментарии в OCaml вложенные, это позволяет очень просто комментировать куски кода с комментариями:
Допустим, вы написали функцию, назовём её repeated, которая берёт исходную строку s, число n и возвращает новую строку, состоящую из n раз повторённой строки s.
В большинстве С-подобных языков вызов функции будет выглядеть так:
Это означает «вызвать функцию repeated с двумя аргументами, первый аргумент — строка hello, второй аргумент — число 3».
Подобно остальным функциональным языкам программирования, в OCaml, запись вызовов функций и использование скобок существенно отличается, что приводит к множеству ошибок. Вот пример того же самого вызова, записанного на OCaml:
Обратите внимание — нет скобок, нет запятых между аргументами.
Основы
Комментарии
Комментарии в OCaml обозначаются символами (* и *), примерно так:
(* Это однострочный комментарий *)
(* Это комментарий на несколько строк. *)
Другими словами, комментарии в OCaml очень похожи на комментарии в Си (
/* ... */
).В настоящий момент нет однострочных комментариев (как
#...
в Перле или // ...
в C99/C++/Java). Когда-то обсуждалась возможность использовать ## ...
, и я весьма рекомендую окамловским товарищам в будущем добавить эту возможность (однако, хорошие редакторы открывают возможность использования однострочных комментариев даже сейчас).Комментарии в OCaml вложенные, это позволяет очень просто комментировать куски кода с комментариями:
(* This code is broken ...
(* Primality test. *)
let is_prime n =
(* note to self: ask about this on the mailing lists *) XXX;;
*)
Вызов функций
Допустим, вы написали функцию, назовём её repeated, которая берёт исходную строку s, число n и возвращает новую строку, состоящую из n раз повторённой строки s.
В большинстве С-подобных языков вызов функции будет выглядеть так:
repeated ("hello", 3) /* this is C code */
Это означает «вызвать функцию repeated с двумя аргументами, первый аргумент — строка hello, второй аргумент — число 3».
Подобно остальным функциональным языкам программирования, в OCaml, запись вызовов функций и использование скобок существенно отличается, что приводит к множеству ошибок. Вот пример того же самого вызова, записанного на OCaml:
repeated "hello" 3 (* this is OCaml code *)
.Обратите внимание — нет скобок, нет запятых между аргументами.