使用:
data type List a = Empty | Cons a (List a)
一个人如何代表[[a]]
?这必须有一个简单的解决方案,我只是盲目的,所以非常感谢某人的意见,谢谢!
我尝试使用List (List a)
或List (Cons x xs)
,但是在我认为没有意义的范围内以“列表”作为响应。
答案 0 :(得分:4)
a
。但是我们不以此构造 value 。
例如,如果我们要构造一个包含List (List a))
的单例列表的列表,则可以这样写:
1
外部oneList1 :: List (List Int)
oneList1 = Cons (Cons 1 Empty) Empty
是外部列表的缺点,因为它的第一个(也是唯一)元素具有Cons
,这是内部列表。 Cons 1 Empty
代表一个列表,其中Cons h t
(在这里是h
)的头(第一个元素)和1
的尾(其余元素)。因此Empty
是一个单例列表,其中Cons 1 Empty
是唯一值。
我们将其包装在外部cons 1
中,从而指定外部列表也是单例列表。 Cons (Cons 1 Empty) Empty
等效于oneList1
。