memoization

    4热度

    3回答

    所以我正在试验,并且在方案中创建了一种编程语言。我也为它构建了一个解释器,这是下面的大部分代码。 我想重写解释器,以便在较小的环境下构建闭包,即。在构建闭包时,它使用的环境与当前环境相似,但仅在闭包的函数部分保留变量,该变量是自由变量。我正在学习记忆,但这是令人困惑的。 编辑:我现在正在使用相当于此的球拍,所以如果在那里更容易,你应该给我建议。 (define-struct var (string

    2热度

    3回答

    我需要以下问题的Pythonic循环开销的帮助:我正在写一个函数来计算像素流算法,它是2D Numpy数组上的经典动态编程算法。它要求: 1)访问数组中的所有元素至少一次这样的: for x in range(xsize): for y in range(ysize): updateDistance(x,y) 2)潜在的下列基于它看起来像一个元素的邻居的值的元素的一个路径

    2热度

    4回答

    好了,所以在C#中我可以这样写: public class Memorizer<K,TRes> { private Dictionary<K,TRes> _mem; private Func<K,TRes> _function public Memorizer (Func<K,TRes> function) { _function = fun

    1热度

    2回答

    我想记忆在给定路径上对文件数据进行操作的函数的结果。如何确定文件数据自上次处理以来是否发生了变化? 我在考虑将包含st_dev, st_ino, and st_mtime的密钥映射到结果。这足够吗?

    6热度

    3回答

    我正在通过Socrata'sSODA api发布一些政府数据。 此API提供了一种通过REST调用检索行的方法。该API允许查询的有限参数化 - 基本上,您可以执行全文搜索,而不需要其他任何操作。我找不到一种方法来形成返回的数据 - 例如,只返回某些数据列。 因此,基本上我只能得到每个数据视图的所有行和所有列。这是好的,我想,但我想缓存它 - 记忆它使用下划线术语。 是否有一种模式用jQuery记

    6热度

    2回答

    我一直在寻找一个位的Python模块,提供了一个memoize的装饰具有以下功能:后续的程序运行中重新使用在磁盘上 存储缓存。 适用于任何pickle-able参数,最重要的是numpy数组。 (Bonus)检查参数是否在函数调用中发生了变异。 ,我发现了几个小的代码段用于这个任务,很可能实现一个自己,但我宁愿有一个既定的软件包这一任务。我还发现incpy,但这似乎不适用于标准的Python解释器

    5热度

    1回答

    为了简单起见,我将使用这个人为的例子类(的一点是,我们从方法得出一些昂贵的数据): class HasNumber a where getNumber :: a -> Integer getFactors :: a -> [Integer] getFactors a = factor . getNumber 当然,我们可以做memoizing实现这个类如: dat

    6热度

    1回答

    问题:可能时避免创建多个对象或多个查询。 我正在使用带导轨的Presenters作为最佳实践。 我接下来的建议说,如果使用“扩展ActiveSupport.Memoizable”(然后记忆:使用它们的方法)而不是使用@the_record = record ||= @record样式来设置项目,这是因为存在一些问题 - false或nil没有被存储,所以查询被再次调用,并且memoizable更好

    1热度

    2回答

    所以我工作的一些代码(去在实践考试对球拍的课程),我必须做到以下几点: 写一个函数cached-assoc是获得一个列表xs和n,并返回一个函数,该函数接受一个参数v并返回(assoc v xs)将返回的相同内容。 您应该使用最近结果的n元素缓存来使该函数可能比调用assoc更快。缓存应该是一个长度为n的向量,每当调用cached-assoc返回的函数时,调用cached-assoc和used-a

    0热度

    1回答

    这是问题说明: 这是一个双人游戏。最初在阵列中有n个整数,玩家A和B有机会选择他们。每个玩家可以从阵列的左端或右端取一个或多个数字,但不能一次取两端。他可以在他的时间内随心所欲地连续输入数字。游戏结束时,玩家从阵列中获取所有数字。每个球员的得分是通过他所得到的数字的总和来计算的。每个玩家都试图从其他方面获得更多分数。如果两个球员都打得最好,而球员A开始比赛,那么球员A比球员B多得多点? 输入 输入