Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在回答Haskell 的 99 个问题中的第7个问题。但是,我已经到了他们定义类型的地步
data NestedList a = Elem a | List [NestedList a]
据我了解,它不会处理空列表(即。[])。
[]
但是在他们的示例测试中,他们显示
*Main> flatten (List []) []
这种类型是否涵盖空列表?如果是这样,为什么?
如果没有,并且是网站的错误,如何编写处理空列表的嵌套列表类型?
数据类型NestedList a包含 type 的Elem a元素或 type 的元素List [NestedList a]。
NestedList a
Elem a
List [NestedList a]
其中第一个,你似乎已经明白了。NestedList a但是,第二个将's的列表(正常排序)作为其参数。这可以是任何列表,包括[]. 因此,List []是一个有效的NestedList,就像List[Elem 5], 或List [Elem 5, List [Elem 3, Elem 2] ]。
List []
NestedList
List[Elem 5]
List [Elem 5, List [Elem 3, Elem 2] ]