私はHaskellでは、以下の機能を持っている:私は一度だけマップを生成するmemdbが好きで、代わりのmap
の反復ごとになりハスケルで値をメモする方法はありますか?
map (\x -> memdb ! x) values
:
memdb = -- load the contents of a database into memory as a Map
をそして、私は次の行を持っています。
make_memdb = -- equivalent to memdb in previous example
memdb <- make_memdb
map (\x -> memdb ! x) values
しかし、これは、私はそれを使用するすべての関数にmemdb
に合格する必要があることを意味します:私はこのようなものを使用してそれを行うことができます。私ができる方法はありますか:
a。 memdb
を呼び出すたびに再計算しないでください。
b。 make_memdb
で生成された値を定数として保存して、それを使用するすべての関数に渡すのを避けることができますか?
[どのようにジェネリックmemoize機能を作るのですが重複する可能性ハスケル?](http://stackoverflow.com/questions/141650/how-do-you-make-a-generic-memoize-function-in-haskell) –
@Craig Stuntz:私はその質問を読んだ私の記事を投稿する前に。それらの答えは、私がどのように達成するのに役立ちますか?またはb。 ? –
@Craig:タイトルにもかかわらず、この質問は、通常の意味でのメモ作成ではありません。それはその質問の重複ではありません。 – hammar