2
A
回答
7
如果desugar let f() = ...
至let f = fun() -> ...
,您可以将a
的声明放入f
的定义内,但在函数开始之前ñ。这将使功能关闭a
,同时保留a
本地到f
。这个问题是你可能无法关闭可变变量,所以你需要使用一个ref:
let f =
let a = ref 0
fun() ->
....
+0
完美。谢谢。 – 2014-10-07 10:44:42
4
最简单的模拟是功能之前,把设:
let mutable static a = 0
let f() =
如果你真的想隐藏你能包住父模块在整个事情中的变量。
否则,序列表达式允许记忆函数中的变量,但是是一个非常重要的变化。
一些其他的想法 - 隐藏类中:
type t() =
static let mutable t = 1
static member f() = 1
或模块的方法模块
module t =
let mutable private t = 1
let f() = 1
,f是可见的,但t是否
+0
比sepp2k的变体稍微复杂一些。谢谢你的帮助。 – 2014-10-07 10:48:24
相关问题
- 1. 函数内的静态变量vs C++中的静态类变量
- 2. 静态函数中的静态变量?
- 3. 像C函数中的静态变量
- 4. 静态类中的静态变量和非静态类中的静态变量
- 5. 全局静态变量vs函数中的静态变量?
- 6. 静态函数有不同的静态类变量?
- 7. C++静态成员函数和变量
- 8. 静态函数和非静态变量
- 9. 静态变量和函数
- 10. 类似于PHP函数行为的Java方法中的静态变量?
- 11. C++中的静态变量
- 12. C中的静态变量
- 13. 从静态函数获取静态变量C++
- 14. 内嵌函数中的静态变量
- 15. 静态函数中的活动变量
- 16. 在类中创建静态变量(C++)
- 17. 在C++中访问静态类变量?
- 18. C++:静态成员函数和变量 - 重新定义静态变量?
- 19. 从C++中的静态方法访问非静态类变量
- 20. 静态变量和函数的用法
- 21. 在类的构造函数中引用一个静态变量
- 22. 同一类中的Java静态变量和非静态变量
- 23. C++静态变量
- 24. C++静态变量
- 25. C++ - 静态变量
- 26. 在函数中使用静态变量()
- 27. 在函数中声明静态变量
- 28. PHP - 静态变量的函数
- 29. C++访问一个静态函数中的私有静态变量
- 30. 如何重置C中函数内的静态变量的值?
你需要从函数外部访问这个变量吗?什么是'静态'修饰符? – Petr 2014-10-07 12:24:54
@ Petr No.无外部访问。我知道这不是一种“功能性方式”。一个函数只能调用一次,这就是为什么我感兴趣。 – 2014-10-07 15:08:34