使用Haskell中的`Ord`参数记忆函数

时间:2014-09-06 04:00:39

标签: haskell

是否有一个常见的Haskell习惯用于记忆类型为

的递归函数
Ord a => a -> SomeType

特别是,我有一个类型为

的递归函数
(Int, Int, [Int]) -> Int

我想记住。

1 个答案:

答案 0 :(得分:3)

您的数据类型

(Int, Int, [Int])

可以映射到Integer。前两个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)