可能重复:
[F#] 如何让两个方法互相调用?
大家好,
我有一个场景,我有两个函数可以从相互递归中受益,但我不确定如何在 F# 中执行此操作
我的场景并不像下面的代码那么简单,但我想得到类似编译的东西:
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
可能重复:
[F#] 如何让两个方法互相调用?
大家好,
我有一个场景,我有两个函数可以从相互递归中受益,但我不确定如何在 F# 中执行此操作
我的场景并不像下面的代码那么简单,但我想得到类似编译的东西:
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
您也可以使用let
rec
...and
形式:
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
要获得相互递归的函数,只需将一个作为参数传递给另一个
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
使用let rec ... and ...
构造:
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