【发布时间】:2014-06-19 15:19:21
【问题描述】:
这应该类似于memoize,但非常不同。虽然 memoize 应该与纯函数一起使用,但它通常对加速 IO 相关函数很有用。
我正在寻找的函数/宏应该表现得像高阶函数。它产生的功能应该:
- 第一次调用时,它应该调用原始函数,并将参数传递给它
- 记住:参数,返回值
- 第二次调用时
- 使用相同的参数:它应该返回记忆的返回值
- 使用不同的参数:忘记最后一个参数和返回值,调用原始函数,记住当前参数和返回值
- 第 n 次调用时,始终将参数与上次调用进行比较,并按照上述方式进行操作。
【问题讨论】:
-
这和 memoize 完全一样,只是它只记住一个参数->值对。
标签: macros clojure functional-programming clojurescript