fork download
  1. import Data.List
  2.  
  3. data Tree a = Node a [Tree a] deriving Show
  4.  
  5. flattenHead (Node x (n:_)) = x : flattenHead n
  6.  
  7. infiniteMap f ~(x:xs) = f x : infiniteMap f xs
  8.  
  9. scan f a ~(Node x ns) = Node a' $ infiniteMap (scan f a') ns where a' = f a x
  10.  
  11. main = print $ take 10 $ flattenHead $ scan const "pointless" undefined
Success #stdin #stdout 0s 6232KB
stdin
Standard input is empty
stdout
["pointless","pointless","pointless","pointless","pointless","pointless","pointless","pointless","pointless","pointless"]