| Copyright | Copyright (C) 2021 Yoo Chung |
|---|---|
| License | GPL-3.0-or-later |
| Maintainer | dev@chungyc.org |
| Safe Haskell | Safe-Inferred |
| Language | GHC2021 |
Problems.P07
Description
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.
Constructors
| Elem a | A non-list element. |
| List [NestedList a] | Nested list. |
Instances
| Generic (NestedList a) Source # | |
Defined in Problems.Lists Associated Types type Rep (NestedList a) :: Type -> Type # | |
| Show a => Show (NestedList a) Source # | |
Defined in Problems.Lists Methods showsPrec :: Int -> NestedList a -> ShowS # show :: NestedList a -> String # showList :: [NestedList a] -> ShowS # | |
| Eq a => Eq (NestedList a) Source # | |
Defined in Problems.Lists | |
| type Rep (NestedList a) Source # | |
Defined in Problems.Lists type Rep (NestedList a) = D1 ('MetaData "NestedList" "Problems.Lists" "ninetynine-1.3.0-4Xxr3hBGtJH9Ff8qb2Invo" 'False) (C1 ('MetaCons "Elem" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "List" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [NestedList a]))) | |