Possible Duplicate:
[F#] How to have two methods calling each other?
Hello all,
I Have a scenario where I have two functions that would benefit from being mutually recursive but I'm not really sure how to do this in F#
My scenario is not as simple as the following code, but I'd like to get something similar to compile开发者_开发问答:
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
You can also use let
rec
... and
form:
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
To get mutually recursive functions simply pass one to the other as a parameter
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
Use the let rec ... and ...
construct:
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
精彩评论