fork download
  1. data Nest a = Leaf a | Node [Nest a]
  2.  
  3. f :: Nest a -> [a]
  4. f (Leaf x) = [x]
  5. f (Node xs) = concat . map f $ xs
  6.  
  7. main = mapM_ (print . f)
  8. [ Node [Leaf "a", Leaf "b", Leaf "c", Leaf "d"]
  9. , Node [Leaf "a", Leaf "b", Node [Leaf "c", Leaf "d"]]
  10. , Node [Node [Leaf "a", Leaf "b"], Node [Leaf "c", Leaf "d"]]
  11. , Node [Leaf "a", Node [Leaf "b", Node [Leaf "c", Leaf "d"]]]
  12. ]
  13.  
Success #stdin #stdout 0s 8388607KB
stdin
Standard input is empty
stdout
["a","b","c","d"]
["a","b","c","d"]
["a","b","c","d"]
["a","b","c","d"]