gpt4 book ai didi

f# - 是否可以强制嵌套函数定义不是闭包?

转载 作者:行者123 更新时间:2023-12-01 08:10:09 26 4
gpt4 key购买 nike

是否有修饰符可以放在函数声明上以强制它不是闭包?我希望以下内容不要通过对 inner 的这种假定修改进行编译:

let outer() =
let i = 7
let inner() =
printf "%i" i
inner()

但是提示i没有定义。这样做的原因是安全性——我想确保我没有捕获并可能修改任何我不打算捕获的东西,以及闭包与函数的性能。

最佳答案

除了将函数移动到范围内没有任何内容可捕获的位置之外,没有其他方法可以实现此目的。话虽如此,在您给出的示例中,有一种简单的方法可以部分实现这一点:

let outer() =        
let inner() =
printf "%i" i
let i = 7
inner()

关于f# - 是否可以强制嵌套函数定义不是闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24012435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com