我正在回答Haskell的99个问题中的第七个问题.但是,我已经到了他们定义类型的地步
data NestedList a = Elem a | List [NestedList a]
Run Code Online (Sandbox Code Playgroud)
根据我的理解,它不会处理空列表(即.[]).
但是在他们的示例测试中他们表明了
*Main> flatten (List [])
[]
Run Code Online (Sandbox Code Playgroud)
这种类型是否包含空列表?如果是这样,为什么?
如果没有,并且是网站的错误,那么如何编写处理空列表的嵌套列表类型?
数据类型NestedList a包含类型的元素Elem a或类型的元素List [NestedList a].
第一个,你似乎已经明白了.但是,第二个问题的参数是一个列表(正常排序)NestedList a.这可以是任何列表,包括[].因此,List []是一个有效的NestedList,因为会List[Elem 5],或List [Elem 5, List [Elem 3, Elem 2] ].