【发布时间】:2014-12-22 23:11:57
【问题描述】:
在 Haskell 语法中,我们可以有一个像 [a -> b] 这样的(抽象)类型,它是函数 a 到 b 的列表。具体类型是[Int -> Int],例如map (*) [1..10]。是否可以有一个类似[a -> b, b -> c, c -> d, ...] 的类型的级联函数列表?列表中的各个元素都是不同的(我认为),所以我认为这是不可能的。但是依赖类型有可能吗?它的类型签名是什么(最好是伪 Haskell 语法)?
【问题讨论】:
-
你不能用 Haskell 中的普通列表来做到这一点,但这是可能的。查看 HList 库中的异构列表。请注意,该库使用了很多扩展来获得这种动态行为。
-
这是 jamshidh 链接的问题(子集)的副本。然而,这个问题更直接地说明了这个问题。
标签: haskell types type-systems dependent-type