2

これらの 2 つの関数を 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

私を助けてください!ありがとう。

4

1 に答える 1

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)
于 2013-09-02T10:16:15.087 に答える