OCamlでFibBuzz

fibbuzz.ml

open Big_int

let fizzbuzz n =
  let modm_is_zero m =  eq_big_int (mod_big_int n (big_int_of_int m)) zero_big_int in
  if modm_is_zero 15 then print_string "fizzbuzz\n"
  else if modm_is_zero 5 then print_string "buzz\n"
  else if modm_is_zero 3 then print_string "fizz\n"
  else Printf.printf "%s\n" (string_of_big_int n)

let fibbuzz =
  let rec loop x y count =
    if count > 100 then Printf.printf "END\n" else
      (fizzbuzz y;
       loop y (add_big_int x y) (count+1))
  in loop zero_big_int (big_int_of_int 1) 1

ひとこと

ocamlc nums.cma fibbuzz.ml -o fibbuzz
とでもして。

恥ずかしい間違いとかしてそう