【发布时间】:2011-11-04 20:20:09
【问题描述】:
我在 Haskell 中有以下功能:
memdb = -- load the contents of a database into memory as a Map
然后我有以下行:
map (\x -> memdb ! x) values
我希望 memdb 只生成一次 Map,而不是在 map 的每次迭代中生成。我可以这样做:
make_memdb = -- equivalent to memdb in previous example
memdb <- make_memdb
map (\x -> memdb ! x) values
但这意味着我必须将memdb 传递给每个使用它的函数。有什么办法可以:
一个。避免在每次调用时重新计算memdb OR
b.将make_memdb 中生成的值保存为常量,这样我就可以避免将它传递给每个使用它的函数?
【问题讨论】:
-
@Craig Stuntz:在发布我的问题之前,我已经阅读了这个问题。这些答案将如何帮助我实现一个。或 b。 ?
-
@Craig:尽管有标题,但这个问题实际上并不是通常意义上的记忆。这不是那个问题的重复。
标签: haskell functional-programming memoization