memoization

    5热度

    3回答

    我试图找到一个很好的方法来使用Data.MemoCombinators来为Haskell中的部分域(非负整数)记忆一个函数。 import Data.MemoCombinators --approach 1 partFib n | n < 0 = undefined | otherwise = integral fib n where fib 0 = 1

    2热度

    1回答

    ...还是有更好的方法来实现一个Memoization? Function.memoize = function(callableAsString) { var r = false, callable, code; try { callable = eval(callableAsString); if (typeof callabl

    14热度

    2回答

    SPOILERS:我正在研究http://www.spoj.pl/problems/KNAPSACK/,所以如果你不想为你宠坏一个可能的解决方案,请不要偷看。 的样板: import Data.Sequence (index, fromList) import Data.MemoCombinators (memo2, integral) main = interact knapsackStr

    15热度

    2回答

    在具有懒惰语义的纯功能性的语言(如Haskell中),计算的结果被memoized使得具有相同的输入的功能的进一步的评估不重新计算的值而是直接从memoized值的高速缓存得到它。 我想知道如果这些memoized值获得在某个时间点回收? 如果是这样,则意味着memoized值必须在稍后的时间重新计算,并记忆化的好处是不那么退出恕我直言。 如果没有,那么OK,这是聪明的缓存的一切......但它意

    59热度

    4回答

    我想知道缓存和memoization之间的实际区别是什么。正如我所看到的,它们都涉及避免重复的函数调用通过存储来获取数据。 两者有什么区别?

    3热度

    3回答

    说我创建一个字典从给定参数的方法: def newDict(a,b,c,d): # in reality this method is a bit more complex, I've just shortened for the sake of simplicity return { "x": a, "y": b, "z": c, "t": d

    1热度

    1回答

    我最近遇到了一个有趣但令人讨厌的F Sharp行为。根据[1],“F#会自动缓存任何不带参数的函数的值”。这似乎是一个好主意,但它对我造成了一些问题,因为我试图想出一个包装函数来生成随机数。 作为一个例子,在这个问题的最后,我在代码中有两个不同的函数。第一个函数“getRand”不带参数,但不幸的是它总是返回相同的数字。第二个函数“getRand2”的工作原理与我所期望的一样,每次调用时都会生成一

    4热度

    2回答

    我会如何写这样的装饰。我希望能够在我调用装饰器时指定max_hits的值(或者可以将其忽略)。 例如,所期望的用途将是 @memoize(max_hits=7) def a(val): print val 或 @memoize def a(val): print val (使用第一实施例给出了关于不正确的参数的误差。) 装饰: class memoize:

    4热度

    2回答

    我注意到有几个人评论他们如何使用||=执行memoization是“马虎”,但他们无论如何都是这样做的,因为他们很忙。 我也发现ActiveSupport::Memoizable。 我得出结论,||=有缺点。 那么它们是什么?

    2热度

    3回答

    多次阅读后,我仍不明白Stoyan Stefanov's "JavaScript Patterns"第76页的示例代码是如何工作的。我不是忍者呢。但对我来说,它读起来就像它只是存储一个空对象: var myFunc = function (param) { if (!myFunc.cache[param]) { var result = {}; // ... expe