我正在学习哈斯克尔。目前通过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 []) []
Elem
和List
来自哪里?我需要做些什么才能在我的程序中使用它们? (或者问题是我必须为这些定义一个新类型 - 如果这是我将要去的答案并重新阅读教程的那一部分......)
答案 0 :(得分:8)
这些只是某些类型的构造函数,例如
data ListType a = Elem a | List [ListType a]