У меня есть дерево типа
, определенное следующим образом
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))
;;
Эта функция не является хвостовой рекурсивной. Есть ли способ написать эту функцию хвостовой рекурсией?