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