21得票5回答
Java:自动记忆化

我在我的代码中有几个函数,使用记忆化(memoization)非常合适(甚至似乎是必要的)。 我不想为每个函数单独手动实现它。是否有一种方法(例如Python 中的),我可以只是使用一个注释或做其他事情,以便在那些我想要的函数上自动获得这个效果?

21得票5回答
如何在Haskell中创建一个通用的memoize函数?

我看到了关于这个问题的其他帖子,但是在Haskell中有没有一种简洁的方法来做到这一点? 作为第二部分,能否在不将函数变为monadic的情况下完成?

21得票5回答
缓存其参数返回值的函数

我想编写一个名为once的函数,它接受一个回调函数作为输入,并返回一个函数。当调用返回的函数第一次时,它应该调用回调函数并返回该输出。如果多次调用该函数,则不会再次调用回调函数,而是仅返回第一次调用时的输出值。 以下是我尝试过的内容。但我没有得到我期望的结果。我需要理解这个概念。functi...

20得票2回答
Python中高效的记忆化技术

我有一些任务要解决,目前最重要的部分是尽可能地使脚本时间效率更高。我试图优化的元素之一是在一个函数中的备忘录。 所以我的问题是:以下3-4种方法中哪种是Python实现备忘录最有效/最快的方法? 我只提供了示例代码 - 如果其中一种方法更有效,但不适用于我提到的情况,请分享您所知道的内容。...

20得票2回答
如何在Ruby中进行记忆化处理可能返回true、false或nil的方法?

显然,||= 不起作用。 def x? @x_query ||= expensive_way_to_calculate_x end 因为如果它最终是false或nil,那么expensive_way_to_calculate_x将会一遍又一遍地运行。 目前我知道的最好方法是将该值放...

20得票5回答
在Scala中,用什么类型来存储一个可变的内存数据表?

每次调用函数时,如果对于给定的参数值它的结果尚未被记忆化,则我希望将结果放入内存表中。一个列用于存储结果,其他列用于存储参数值。 如何最好地实现这个功能?参数具有多种类型,包括一些枚举。 在C#中,我通常会使用 DataTable。在Scala中是否有相当的东西?

20得票2回答
如何对自定义的React Hook 实现记忆化

const useSomeHook = ({number}) => { const [newNumber, setNewNumber] = useState(0) useEffect(() => { setNewNumber(number + 1) }, [n...

20得票2回答
在JSX中使用useMemo是否安全?

我正在尝试使用记忆化 Modal 并且我在这里遇到问题。 当我更改输入时,我不需要重新渲染模态框组件。 例如: Modal.tsx看起来像这样:import React from "react"; import { StyledModalContent, StyledMod...

19得票5回答
如何对 **kwargs 进行记忆化?

我还没有看到一个成熟的方法来记忆一个接受关键字参数的函数,即一些类型的东西def f(*args, **kwargs) 由于通常记忆化程序(memoizer)具有一个字典(dict)来缓存给定输入参数的结果,而kwargs是一个字典(dict),因此不可哈希。我尝试过根据此讨论所述使用(arg...

18得票2回答
像Haskell这样的函数式语言中,记忆化值的生命周期是多久?

在具有惰性语义(例如Haskell)的纯函数式语言中,计算结果会被缓存,以便使用相同输入再次调用函数时不会重新计算该值,而是直接从缓存的缓存值中获取。 我想知道这些备忘录值是否会在某个时间点被回收利用? 如果是这样,那么备忘录值必须在稍后的时间重新计算,备忘录化的好处在我的看法中并没有那么...