Хвостовая рекурсивная функция для определения глубины дерева в Ocaml

У меня есть дерево типа , определенное следующим образом

type 'a tree = Leaf of 'a | Node of 'a * 'a tree * 'a tree ;;

У меня есть функция для определения глубины дерева следующим образом

let rec depth = function 
    | Leaf x -> 0
    | Node(_,left,right) -> 1 + (max (depth left) (depth right))
;;

Эта функция не является хвостовой рекурсивной. Есть ли способ написать эту функцию хвостовой рекурсией?

33
задан Will Ness 19 January 2014 в 19:04
поделиться