пятница, 23 ноября 2012 г.

Реализация факториала: ocaml vs scheme

Решил я сравнить две реализации функции вычисления факториала с поддержкой больших чисел. Первая реализация на Ocaml:
let rec fact x= if(le_big_int x (big_int_of_int 1)) 
                then 
                   big_int_of_int 1 
                else 
                   mult_big_int x (fact (pred_big_int x))

let y = fact(big_int_of_int 40)
let res=string_of_big_int y
Вторая реализация на Scheme:
(define (bigfact x)
  (if (= x 1)
      1
      (* x (bigfact (- x 1)))))
(bigfact 40)
Обе функции выдают правильный ответ: 815915283247897734345611269596115894272000000000
Но меня поразила многословность ocaml!

Комментариев нет:

Отправить комментарий