haskell - Haskell 中带有 `Ord` 参数的 Memoize 函数

标签 haskell

是否有一个常见的 Haskell 习惯用法来内存具有类型的递归函数

Ord a => a -> SomeType

特别是,我有一个类型为递归函数

(Int, Int, [Int]) -> Int

我想记住的。

最佳答案

您的数据类型

(Int, Int, [Int])

可以映射到Integer。前 2 个 Int 只是一堆位,而 Int 列表只是一个位列表,一次一堆。由于可以为Integer创建一个内存树,因此也可以为该数据类型创建一个内存树。 memo-trie package同意,并提供以下 3 个相关实例:

instance HasTrie Int
instance HasTrie x => HasTrie [x]
instance (HasTrie a, HasTrie b, HasTrie c) => HasTrie (a, b, c)

关于haskell - Haskell 中带有 `Ord` 参数的 Memoize 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696625/

相关文章:

Haskell 读取前 n 行

function - 如何使用 Haskell 中的过滤器功能?

haskell - 生成一个由元素右移 n 次组成的列表

algorithm - 如何让这段Haskell代码更简洁?

haskell - 通过 cabal 中的可执行文件分析库

haskell - 如何制作 Applicative 的固定长度向量实例?

version-control - 使用 darcs 拉取已删除文件时出现冲突标记混淆

haskell - "instance (Num a) => YesNo a where"代码行异常

haskell - maxTotalHeaderLength 是否按预期工作?

haskell - Haskell 中是否有典型的配置或属性文件格式和库?