Récursion Terminale Explication
Bonsoir à toutes et à tous,
Je suis devant un bout de code en Ocaml et ayant vu récemment cette notion en cours, j'ai essayé de l'appliquer mais sans succès... j'aimerais donc, si vous le permettez, comprendre cette notion avec vous.
Code:
1 2 3 4 5 6 7 8
| let rec mrg l1 l2 =
match l1 with
|[] -> l2
|h1::r1 -> begin
match l2 with
|[] -> l1
|h2::r2 -> if h1 <= h2 then h1::(mrg r1 l2) else h2::(mrg l1 r2)
end;; |
Pourquoi cette fonction n'est donc pas récusive terminale ?
Le résultat n'est il pas en position terminale ?
Est-ce à cause de " h2::r2 -> ......" ? car on doit d'abord réaliser le test
"if h1 <= h2 " donc les 2 appels suivants sont mis en attente ?
J'suis perdu !
Merci d'avance pour le temps que vous m'accorderez.