memoization

    10

    2答えて

    I持っHaskellでn番目のフィボナッチ数を計算するために、以下の、しばしば引用符で囲まれたコード: ghci> fibonacci 1000 : fibonacci :: Int -> Integer fibonacci = (map fib [0..] !!) where fib 0 = 0 fib 1 = 1 fib n = fibonacci

    11

    3答えて

    こんにちは、私はMemoizationからこの例で探しています:私のためにあなたがmemoized_fib(n-2)を呼び出す場合ので、あなたが新しいリスト「を作成する」とそれに物事をやっている、これも動作し、なぜ私は疑問に思って memoized_fib :: Int -> Integer memoized_fib = (map fib [0 ..] !!) where fib 0

    17

    6答えて

    関数の出力をディスクに書き留める方法はありますか? 私は機能 def getHtmlOfUrl(url): ... # expensive computation を持っているし、ような何かしたいと思います: def getHtmlMemoized(url) = memoizeToFile(getHtmlOfUrl, "file.dat") をして、URLごとに一度だけ高価な計算

    8

    2答えて

    私がやっているFunctional Programmingコースの現在の練習課題では、特定の関数をメモしたバージョンを作る必要があります。メモ化について説明するには、次の例を与えます。 fiblist = [ fibm x | x <- [0..]] fibm 0 = 0 fibm 1 = 1 fibm n = fiblist !! (n-1) + fiblist !! (n-2) し

    11

    4答えて

    私は@functools.lru_cacheをPython 3.3で使用しています。私はプログラムを再起動するときにそれを復元するために、ファイルにキャッシュを保存したいと思います。どうすればいいですか? 編集1考えられる解決策:__closure__を酸洗We need to pickle any sort of callable 問題: _pickle.PicklingError: Can't

    1

    1答えて

    私はocamlで次の擬似コードを書いているとします。 foo(n:int, d:int) = foo(n-1,d-1) + foo(n-1,d) //Assume proper terminating conditions are added here つまり、再帰的に定義された関数を計算しています。 上記はテール再帰的ではありません。 (n-1、d-1)foo(n-1、d-1)の計算によっ

    5

    1答えて

    2つの異なる方法でmemoiseを関数に使用すると、2つの異なる動作が得られ、その理由を理解したいと思います。正確な入力が前に見てきた場合stratagy 2が速いだけであるのに対し、それは、再帰的な結果を再利用するよう # Non Memoised function fib <- function(n) { if (n < 2) return(1) fib(n - 2) +

    5

    1答えて

    関数型プログラミングの詳細については、アンダースコアのドキュメントを参照し、より頻繁に使用される関数の独自のバージョンを作成しようとしました。 "memoize"に出くわす - 私は頭の中で頭を折るのに問題があり、Crockfordの 'The Good Parts'でいくつかの情報を見つけました。 _.memoize = function(func) { // 'cache' obje

    7

    3答えて

    要約:オブジェクトをハッシュする高速な方法はJSON.stringifyですか? 詳細:JavaScript値をきれいに印刷できるRubyおよびJavaScriptライブラリ(NeatJSON)があります。私は最近、深くネストされたオブジェクトが、直列化されるオブジェクトとインデント量に基づいてメモを使用して、O(n!)のパフォーマンス(ネストレベルであるn)を引き起こした問題を修正しました。ルビ

    13

    3答えて

    ここでは、スタックオーバーフローの私は、単一の引数関数をmemoizes foundコードをしました:メモ化機能は、同時に複数のスレッドから呼び出されたとき static Func<A, R> Memoize<A, R>(this Func<A, R> f) { var d = new Dictionary<A, R>(); return a=> { R