haskell:99个问题#7:异构列表

时间:2010-08-30 19:34:59

标签: haskell

我正在学习哈斯克尔。目前通过99 questions工作,有点困在#7:

  

问题7   (**)展平嵌套列表结构。

     

通过将每个列表替换为其元素(递归地),将列表(可能将列表作为元素保存到“平面”列表中)进行转换。

     

Haskell中的示例:

*Main> flatten (Elem 5)
[5]
*Main> flatten (List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])
[1,2,3,4,5]
*Main> flatten (List [])
[]

ElemList来自哪里?我需要做些什么才能在我的程序中使用它们? (或者问题是我必须为这些定义一个新类型 - 如果这是我将要去的答案并重新阅读教程的那一部分......)

1 个答案:

答案 0 :(得分:8)

这些只是某些类型的构造函数,例如

data ListType a = Elem a | List [ListType a]