MemoTrie? (関数の自動メモ化@Haskell)
コンテンツ
HaskellにはMemoTireというパッケージがあります.
どうやら,関数のメモ化を自動でやってくれるみたい.
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/MemoTrie
http://hackage.haskell.org/packages/archive/MemoTrie/0.4.5/doc/html/Data-MemoTrie.html
(試行錯誤の結果)たぶん,メモ化したい関数 f に
f' = memo f
とmemoをくっつけて,f の変りに f’ を使うとメモ化してくれるみたい.
しかし,情報が少なくて,これで良いのかよく分からない.
もっと,うまい使いかたがあるかもしれないし.うーん.
追記
これでも,良いみたい.
fib,mFib :: Integer -> Integer fib 1 = 1 fib 2 = 1 fib n = mFib (n-1) + mFib (n-2) mFib = memo fib
なんか,よく理解していないが,便利そうだ.
部分和問題
part, mPart :: Int -> [Int] -> Bool part [] = True part _ [] = False part n (x:xs) = mPart (n - x) xs || mPart n xs mPart = memo2 part
まじめに書いたときより,少し遅い気がするが,お手軽だからこんなもんでしょう.
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)