1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-01-17 13:38:38 +01:00

Merge pull request #961 from duanchenggang/ocaml

[ocaml/en] Change the example of mutually recursive functions
This commit is contained in:
ven 2015-02-12 10:27:56 +01:00
commit 126219ee81

View File

@ -144,11 +144,16 @@ x + y ;;
(* Alternatively you can use "let ... and ... in" construct.
This is especially useful for mutually recursive functions,
with ordinary "let .. in" the compiler will complain about
unbound values.
It's hard to come up with a meaningful but self-contained
example of mutually recursive functions, but that syntax
works for non-recursive definitions too. *)
let a = 3 and b = 4 in a * b ;;
unbound values. *)
let rec
is_even = function
| 0 -> true
| n -> is_odd (n-1)
and
is_odd = function
| 0 -> false
| n -> is_even (n-1)
;;
(* Anonymous functions use the following syntax: *)
let my_lambda = fun x -> x * x ;;
@ -288,7 +293,7 @@ type int_list_list = int list_of_lists ;;
(* Types can also be recursive. Like in this type analogous to
built-in list of integers. *)
type my_int_list = EmptyList | IntList of int * my_int_list ;;
let l = Cons (1, EmptyList) ;;
let l = IntList (1, EmptyList) ;;
(*** Pattern matching ***)