32 lines
504 B
OCaml
32 lines
504 B
OCaml
(*
|
|
* val catalan : int -> int
|
|
* Returns the nth Catalan number.
|
|
*)
|
|
fun catalan 0 = 1
|
|
| catalan n = ((4 * n - 2) * catalan(n - 1)) div (n + 1);
|
|
|
|
(*
|
|
* val print_catalans : int -> unit
|
|
* Prints out Catalan numbers 0 through 15.
|
|
*)
|
|
fun print_catalans(n) =
|
|
if n > 15 then ()
|
|
else (print (Int.toString(catalan n) ^ "\n"); print_catalans(n + 1)); print_catalans(0);
|
|
(*
|
|
* 1
|
|
* 1
|
|
* 2
|
|
* 5
|
|
* 14
|
|
* 42
|
|
* 132
|
|
* 429
|
|
* 1430
|
|
* 4862
|
|
* 16796
|
|
* 58786
|
|
* 208012
|
|
* 742900
|
|
* 2674440
|
|
* 9694845
|
|
*)
|