如何在F#中定义相互依赖的函数?

时间:2013-09-02 10:13:46

标签: function f#

我在F#

中定义了这两个函数
let f t = 
   match t with
   |_ when t = 0 -> 1
   |_ -> g t-1

let g t = 1 + (f t)

但是,F#编译器不接受它。它说

stdin(9,16): error FS0039: The value or constructor 'f' is not defined

请帮帮我!感谢。

1 个答案:

答案 0 :(得分:5)

F#支持使用let rec ... and ...语法进行相互重复。这是你的例子

let rec f t = 
   match t with
   |_ when t = 0 -> 1
   |_ -> g t-1

and g t = 1 + (f t)