OCaml is a fully recursive language. So using recursion is completely natural.
We will see in this example how to create an easy recursion of a classic factorial. This in two different manners.
These two ways of using recursion are strictely the same, the type of the function and the result as well of course.
The first manner to create a recursion function
# let rec factorial n = if n = 0 then 1 else n * factorial(n - 1);;
You can split it to have a better indentation:
# let rec factorial n =
if n = 0
then 1
else
n * factorial(n - 1);;
After clicking Enter, we will have:
val factorial : int -> int = <fun>
So let’s use this function:
# factorial 5;;
- : int = 120
The second manner to create a recursion function
# let rec factorial = function | 0 -> 1 | n -> n * factorial(n - 1);;
Or a really more clear way of displaying:
# let rec factorial = function
| 0 -> 1
| n -> n * factorial(n - 1);;
After clicking Enter, we will have:
val factorial : int -> int = <fun>
So let’s use this function:
# factorial 5;;
- : int = 120
It was your first recursion. Good job.