let orec fib x = match x with | 0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2) let rec f = function |1 -> 0 |n -> f (n-1) ;; let orec f = function |1 -> 0 |n -> f (n-1) ;; let orec f = function | 1 -> 0 | n when (n mod 2) = 0 -> f (n - 1) | n -> g ( n - 2 ) and g = function | 0 -> 0 | n when (n mod 2) > 0 -> g ( n - 1 ) | n -> f ( n - 1 ) ;;