RosettaCodeData/Task/Evaluate-binomial-coefficients/OCaml/evaluate-binomial-coefficients-2.ml
2024-10-16 18:07:41 -07:00

11 lines
231 B
OCaml

#load "nums.cma";;
open Num;;
let binomial n p =
let m = min p (n - p) in
if m < 0 then Int 0 else
let rec a j v =
if j = m then v
else a (succ j) ((v */ (Int (n - j))) // (Int (succ j)))
in a 0 (Int 1)
;;