F #: fonctions mutuellement récursives [duplicate
-
26-09-2019 - |
Question
Duplicata possible:
F #] Comment avoir deux méthodes qui s'appellent?
Bonjour à tous,
J'ai un scénario où j'ai deux fonctions qui bénéficieraient d'être mutuellement récursives, mais je ne sais pas vraiment comment le faire dans F #
Mon scénario n'est pas aussi simple que le code suivant, mais j'aimerais obtenir quelque chose de similaire à la compilation:
let rec f x =
if x>0 then
g (x-1)
else
x
let rec g x =
if x>0 then
f (x-1)
else
x
La solution
Vous pouvez aussi utiliser let
rec
... and
formulaire:
let rec f x =
if x>0 then
g (x-1)
else
x
and g x =
if x>0 then
f (x-1)
else
x
Autres conseils
Pour obtenir des fonctions mutuellement récursives, passez simplement l'un à l'autre comme paramètre
let rec f g x =
if x>0 then
g (x-1)
else
x
let rec g x =
if x>0 then
f g (x-1)
else
x
Utilisez le let rec ... and ...
construction:
let rec f x =
if x>0 then
g (x-1)
else
x
and g x =
if x>0 then
f (x-1)
else
x
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow