2

作为纯函数式编程习惯的新手,我不知道如何实现这种动态编程案例。我有一个f :: String -> [String]递归计算的函数并想记住它。Input Strings 可以是任意的,所以我猜需要像 lazy 这样的东西Map,但找不到。如何在 Haskell 中实现这种情况?

4

1 回答 1

1

使用记忆库:

import qualified Data.MemoCombinators as Memo

f :: String -> [String]
f = Memo.list Memo.char memof  -- because String = [Char]
    where
    memof x = ... f ...          -- call *f* recusively (not memof)

有关更多信息,请参阅文档。另见备忘录

于 2012-10-15T00:31:03.350 回答