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

标签 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

请帮助我!谢谢。

最佳答案

F# 使用 let rec ... and ... 语法支持相互递归。这是你的例子

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

and g t = 1 + (f t)

关于function - 如何在 F# 中定义相互依赖的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570702/

相关文章:

javascript - 调用在函数内创建的对象中的方法

function - 具有多个调用签名的 TypeScript 接口(interface)

c# - 使用哪个,C# 还是 F#?在这个 "real world"案例中

f# - 如何隐藏 F# Program.fs 中的记录?

c# - 是否可以在 PropertyGrid 中查看公共(public)属性以外的成员?

c - 为什么在传递参数时使用 const 会给我一个警告?

java - 重载 Java 函数并确定执行哪一个

将一维字符串复制到二维数组元素中

f# - fable websharper borelo SAFE 我应该使用哪个?

recursion - Deedle - 具有初始值的系列上的递归映射