Comments are useful text to describe code. These are ignored by the compiler during the compilation phase.
Ocaml comments examples
There are three types of OCaml comments
- Single Line Comments
- Multi-Line Comments
- Documentation Comments
Single-line comments
Single-line comments are written a single line that always starts with (*
followed by space and text and ends with*)
(*single-line comment example*)
Multi-line comments example
Multi line comments starts with (*
followed by each line preceded with *
and ends with *)
These are also called block comments that span multiple lines.
(* Multi-line comments
* example1
* example2
*)
Documentation Comments
Documentation comments are used to write a comment about classes, methods, and expressions for developers to understand the code.
ocamldoc
is a tool that outputs documentation for an OCaml code.
It outputs in HTML, Texinfo formats
Syntax:
(** Comment text *)
Here is an example to generate documentation comments in OCaml methods, functions, and class types.
docexample.ml:
(** function myfunc *)
let myfunc x y = x + y
(** employeetype *)
type employee = {
id : int ; (** Employee id*)
name : string ; (** employee name *)
}
(** User class *)
class User =
(** department instane variable *)
val mutable department = "sales"
(** properties *)
val id = 11
val name = "admin"
(** method getDepartment *)
method getDepartment (value: string) = 1
(**/**)
(** The below method does not show in documentation *)
method getSalary (value : int) = 1
end
(**/**)
are stop comments syntax, code after these comments does not show in the documentation output
Here is a command syntax to generate documentation comments
ocamldoc options sourcefiles
example
ocamldoc -html docexample.ml
How do you write a comment in OCaml?
Comments can be single, multi-line, or documentation comments.
Single-line text included between (*
and *)
in one line.
multi-line text included between (*
and *)
in multiple lines and each line prefixed with *
.
Documentation comments are special comments that are included between (**
and *)
in multiple lines.