是否有一个常见的 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/