【发布时间】:2015-09-01 13:50:06
【问题描述】:
根据http://en.wikibooks.org/wiki/F_Sharp_Programming/Caching
F# 自动缓存任何不接受的函数的值 参数
那么为什么会这样呢?
let random() = System.Random().Next()
随机是单位 -> int 我希望每次调用 random() 时都会缓存输出值并返回相同的 int。
【问题讨论】:
-
random()采用参数(),即unit。你混淆了一个函数和一个变量。let random = System.Random().Next()初始化一个变量random,它将在多次调用时返回相同的值。 -
FSharp is supposed to automatically cache the value of any function which takes no parameters.[需要引用](不,en.wikibooks.org/wiki/F_Sharp_Programming/Caching 不是 F# 的权威来源) -
为什么你认为F#应该自动缓存函数结果? (我不想嘲笑你 - 老实说,我想知道你从哪里得到的,以便尝试摆脱那里的错误信息)
-
@Luaan 我已经添加了引用,所以你可以看到我在哪里感到困惑。