3

私には機能があります

slow :: Double -> Double

これは非常に頻繁に (何億回も) 呼び出されますが、約 1,000 個の個別の値に対してのみ呼び出されます。これはメモ化の優れた候補のようですが、Double の関数をメモ化する方法がわかりません。

リストは整数型ではないため、リストを作成する標準的な手法は機能しません。Data.MemoCombinators を見ましたが、Doubles をネイティブにサポートしていません。bitsより多くのデータ型を処理する関数がありましたがDouble 、のインスタンスではありませんData.Bits

「遅い」をメモするエレガントな方法はありますか?

4

2 に答える 2

6

いつでも醜いメモを使用できます。内部は不純ですが、高速で、必要なことを実行します (引数が NaN の場合を除く)。

于 2013-07-16T21:14:20.200 に答える