Haskell HList:如何查找一个值
Haskell HList: how to lookup a value
我正在使用 HList 包,我需要两个函数,例如 (!!)
和 elem
。第一个函数接收一个 HList 和一个整数 n 和 returns HListn-th 元素。第二个接收一个 HList 和一个元素,并根据 Eq[=24 验证该元素是否在 HList 中=] 该元素的实例。
有人可以帮我实现这个吗?
HList
的索引函数被称为 hLookupByHNat
。
您不能简单地通过 Int
对 HList
进行索引,因为结果的类型取决于索引,而 Haskell 没有依赖类型(目前)。可以在 Haskell 中模拟依赖类型,因此存在 hLookupByHNat
作为 HList
上的查找函数。但请注意,dependently-typed 编程并不容易,即使是在实际支持它们的语言中也是如此。
我正在使用 HList 包,我需要两个函数,例如 (!!)
和 elem
。第一个函数接收一个 HList 和一个整数 n 和 returns HListn-th 元素。第二个接收一个 HList 和一个元素,并根据 Eq[=24 验证该元素是否在 HList 中=] 该元素的实例。
有人可以帮我实现这个吗?
HList
的索引函数被称为 hLookupByHNat
。
您不能简单地通过 Int
对 HList
进行索引,因为结果的类型取决于索引,而 Haskell 没有依赖类型(目前)。可以在 Haskell 中模拟依赖类型,因此存在 hLookupByHNat
作为 HList
上的查找函数。但请注意,dependently-typed 编程并不容易,即使是在实际支持它们的语言中也是如此。