Copyright | Copyright (C) 2021 Yoo Chung |
---|---|
License | GPL-3.0-or-later |
Maintainer | dev@chungyc.org |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Part of Ninety-Nine Haskell Problems. Some solutions are in Solutions.P07.
Synopsis
- flatten :: NestedList a -> [a]
- data NestedList a
- = Elem a
- | List [NestedList a]
Documentation
flatten :: NestedList a -> [a] Source #
Transform a list, possibly holding lists as elements, into a "flat" list by replacing each list with its elements recursively.
Examples
>>>
flatten $ Elem 5
[5]
>>>
flatten $ List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]]
[1,2,3,4,5]
>>>
flatten $ List []
[]
data NestedList a Source #
A list type with arbitrary nesting of lists.
Elem a | A non-list element. |
List [NestedList a] | Nested list. |